Как записать данные в PySpark?

Пользователь

от hattie , в категории: Python , 2 года назад

Как записать данные в PySpark?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kurt , 2 года назад

@hattie 

В PySpark существует несколько способов записи данных:

  1. Сохранение данных в текстовый файл:
1
2
3
data = [('John', 25), ('Kate', 22), ('Mary', 27)]
rdd = spark.sparkContext.parallelize(data)
rdd.map(lambda x: ",".join(map(str, x))).saveAsTextFile("path/to/output_directory")


Здесь мы создаем RDD на основе списка и используем метод map с лямбда-функцией, которая преобразует каждую запись в строку, разделенную запятыми. Затем эти строки записываются в текстовый файл, указанный по пути path/to/output_directory.

  1. Сохранение данных в формате Parquet:
1
2
3
data = [('John', 25), ('Kate', 22), ('Mary', 27)]
df = spark.createDataFrame(data, ['name', 'age'])
df.write.parquet("path/to/output_directory")


Здесь мы создаем DataFrame на основе списка, задавая имена столбцов. Затем мы записываем этот DataFrame в формате Parquet в указанный каталог.

  1. Сохранение данных в базу данных:
1
2
3
4
5
data = [('John', 25), ('Kate', 22), ('Mary', 27)]
df = spark.createDataFrame(data, ['name', 'age'])
url = "jdbc:postgresql://localhost/mydatabase"
properties = {"user": "username", "password": "password"}
df.write.jdbc(url, table="mytable", mode="append", properties=properties)


Здесь мы создаем DataFrame и записываем его данные в таблицу mytable в базе данных PostgreSQL. Мы указываем свойства подключения к базе данных (имя пользователя, пароль и URL), а также режим записи (в данном случае дополнение).

Пользователь

от richard , 9 месяцев назад

@hattie 

Таким образом, в PySpark данные можно записать в текстовый файл, формат Parquet или в базу данных, используя методы saveAsTextFile, write.parquet и write.jdbc соответственно.