📅  最后修改于: 2023-12-03 14:53:03.809000             🧑  作者: Mango
如果你在使用 Pyspark,通常需要将数据转换为 DataFrame,但是可能会遇到需要将字典列表转换为 DataFrame 的情况。在本文中,我们将介绍如何将字典列表转换为 Pyspark DataFrame。
字典列表是一个由多个字典组成的列表,每个字典中包含了多个键-值对。例如,下面是一个包含两个字典的字典列表:
[{'name': 'Alice', 'age': 30, 'gender': 'female'}, {'name': 'Bob', 'age': 25, 'gender': 'male'}]
要将字典列表转换为 Pyspark DataFrame,我们可以使用 SparkSession.createDataFrame() 方法。该方法接受两个参数:
对于第二个参数,我们可以使用 Pyspark.sql.types 模块中的 StructType 类定义 schema。例如,如果我们的字典列表包含了三个键-值对:'name'、'age' 和 'gender',我们可以使用下面的代码定义 schema:
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
schema = StructType([
StructField('name', StringType(), True),
StructField('age', IntegerType(), True),
StructField('gender', StringType(), True)
])
接着,我们可以使用 SparkSession.createDataFrame() 方法将字典列表转换为 DataFrame:
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('example').getOrCreate()
dict_list = [{'name': 'Alice', 'age': 30, 'gender': 'female'}, {'name': 'Bob', 'age': 25, 'gender': 'male'}]
df = spark.createDataFrame(dict_list, schema)
最后,我们可以使用 DataFrame.show() 方法查看 DataFrame 的内容:
df.show()
输出结果为:
+-----+---+------+
| name|age|gender|
+-----+---+------+
|Alice| 30|female|
| Bob| 25| male|
+-----+---+------+
本文介绍了如何将字典列表转换为 Pyspark DataFrame。首先,我们定义了一个包含多个键-值对的字典列表;然后,使用 PySpark 中的 StructType 类定义 schema,最后使用 SparkSession.createDataFrame() 方法将字典列表转换为 DataFrame。