如何创建空的 PySpark DataFrame?
PySpark 是一个构建在 Apache Spark 之上的数据处理框架,广泛用于大规模数据处理任务。它提供了一种高效的方式来处理大数据;它具有数据处理能力。
PySpark DataFrame 是一个分布式数据集合,组织成命名列。它类似于关系数据库中的表,其中列表示特征,行表示观测值。DataFrame 可以从各种数据源创建,例如 CSV、JSON、Parquet 文件和现有的 RDD(弹性分布式数据集)。但是,有时可能需要出于各种原因创建空的 DataFrame,例如初始化模式或作为未来数据的占位符。以下是在本教程中说明的两个示例。
语法
要创建一个空的 PySpark DataFrame,我们需要遵循以下语法:
empty_df = spark.createDataFrame([], schema)
在此语法中,我们将空行列表和模式传递给 ‘createDataFrame()’ 方法,该方法返回一个空的 DataFrame。
示例
在此示例中,我们创建一个只有一个列的空 DataFrame。
#Importing necessary modules
from pyspark.sql.types import StructType, StructField, IntegerType
#creating a SparkSession object
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("EmptyDataFrame").getOrCreate()
#Defining the schema of the dataframe.
schema = StructType([StructField("age", IntegerType(), True)])
#Creating an empty dataframe.
empty_df = spark.createDataFrame([], schema)
#Printing the output.
empty_df.show()
在此示例中,首先,我们定义了一个只有一个名为 "age" 的 IntegerType 列的模式;然后,我们使用该模式创建了一个空的 DataFrame。最后,我们使用 ‘show()’ 方法显示空 DataFrame。
输出
+---+ |age| +---+ +---+
示例
在此示例中,我们正在创建一个具有多个列的空 DataFrame。
#Importing the necessary modules.
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
from pyspark.sql import SparkSession
#Creating a SparkSession object.
spark = SparkSession.builder.appName("EmptyDataFrame").getOrCreate()
#Defining the schema of the DataFrame
schema = StructType([
StructField("col_1", StringType(), True),
StructField("col_2", StringType(), True),
StructField("col_3", StringType(), True),
StructField("col_4", StringType(), True),
StructField("col_5", StringType(), True),
StructField("col_6", StringType(), True),
StructField("col_7", StringType(), True),
StructField("col_8", StringType(), True),
StructField("col_9", StringType(), True),
StructField("col_10", IntegerType(), True)
])
#Creating an empty DataFrame.
empty_df = spark.createDataFrame([], schema)
#Printing the output.
empty_df.show(10000)
在此示例中,我们首先定义了一个具有十个名为 "col_1" 到 "col_10" 的 ‘StringType’ 和 ‘IntegerType’ 列的模式,然后使用该模式创建了一个空的 DataFrame。最后,我们使用 ‘show()’ 方法显示空 DataFrame,并显示许多行(10,000)以证明 DataFrame 确实是空的。
我们注意到,即使输出显示了 10,000 行,DataFrame 也是空的,因为任何列中都不存在任何值。
输出
+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+ |col_1|col_2|col_3|col_4|col_5|col_6|col_7|col_8|col_9|col_10| +-----+-----+-----+-----+-----+-----+-----+-----+-----+------+ +-----+-----+-----+-----+-----+-----+-----+-----+-----+------+
在本教程中,我们学习了如何使用 ‘createDataFrame()’ 方法创建空的 PySpark DataFrame。我们说明了两个示例,包括创建只有一个列的空 DataFrame,创建具有多个列的空 DataFrame。要创建空的 DataFrame,我们首先使用 ‘StructType()’ 和 ‘StructField()’ 定义一个模式,然后将其作为参数与空列表 ‘[]’ 一起传递给 ‘createDataFrame()’ 方法。这将创建一个具有指定模式的空 DataFrame。通过创建空的 PySpark DataFrame,我们可以提前设置 DataFrame 的结构,然后根据需要用数据填充它。这在处理大型数据集时非常有用,其中数据结构是预先知道的,但数据本身尚不可用。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP