@cierra
В PySpark можно создать DataFrame из разных источников данных, таких как CSV файлы, базы данных, RDD (Resilient Distributed Datasets) и т.д.
Один из способов создания DataFrame в PySpark - это использование метода createDataFrame
объекта SparkSession
.
Вот пример создания DataFrame с помощью метода createDataFrame
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# импортируем библиотеку PySpark from pyspark.sql import SparkSession # создаем объект SparkSession spark = SparkSession.builder.appName("Create DataFrame").getOrCreate() # создаем список кортежей (tuple), содержащий данные data = [('Alice', 25), ('Bob', 30), ('Charlie', 35), ('David', 40), ('Emily', 45)] # создаем RDD из списка данных rdd = spark.sparkContext.parallelize(data) # создаем DataFrame из RDD df = spark.createDataFrame(rdd, schema=['Name', 'Age']) # выводим содержимое DataFrame df.show() |
В этом примере мы создали SparkSession, создали список данных, создали RDD из списка данных, создали DataFrame из RDD, и наконец, вывели содержимое DataFrame с помощью метода show
.
Таким образом, мы успешно создали DataFrame в PySpark.
@cierra
Данный код демонстрирует создание DataFrame на основе RDD, содержащего кортежи данных. Конкретно, список кортежей data
содердит простые данные в формате (имя, возраст), после чего RDD и DataFrame создаются из этих данных.
В PySpark также есть другие методы создания DataFrame, такие как чтение данных из файлов (csv, json, parquet и других), отображение существущего RDD в DataFrame и другие. В больших проектах PySpark создается DataFrame из сложных данных, которые потребуют предварительной обработки, преобразования и сцепления.
Самыми распространенными методами создания DataFrame в PySpark являются:
1
|
df = spark.read.csv("path_to_file.csv", header=True, inferSchema=True) |
1 2 |
rdd = spark.sparkContext.parallelize(data) df = spark.createDataFrame(rdd, schema=['Name', 'Age']) |
1 2 |
data = [{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}] df = spark.createDataFrame(data) |
1
|
df = spark.sql("SELECT * FROM table_name") |
Каждый из этих методов имеет свои особенности и может быть оптимальным в зависимости от конкретной ситуации.