📅  最后修改于: 2023-12-03 15:37:55.929000             🧑  作者: Mango
在 PySpark 中,创建数据框是常见的任务之一。有时我们需要从多个列表中创建数据框。下面介绍两种方法。
可以使用 zip 方法将多个列表组合到一起,然后使用 PySpark 的 createDataFrame 方法创建数据框。
from pyspark.sql import SparkSession
# 创建 SparkSession 对象
spark = SparkSession.builder.appName("CreateDataFrameDemo").getOrCreate()
# 定义数据
names = ['John', 'Mike', 'Sara', 'Emily']
ages = [30, 25, 28, 32]
salaries = [50000, 40000, 45000, 55000]
# 使用 zip 将数据组合到一起
data = list(zip(names, ages, salaries))
# 创建数据框
df = spark.createDataFrame(data, ['name', 'age', 'salary'])
# 显示数据框
df.show()
输出结果为:
+-----+---+------+
| name|age|salary|
+-----+---+------+
| John| 30| 50000|
| Mike| 25| 40000|
| Sara| 28| 45000|
|Emily| 32| 55000|
+-----+---+------+
还可以使用 Row 对象将多个列表组合到一起,然后使用 PySpark 的 createDataFrame 方法创建数据框。
from pyspark.sql import SparkSession, Row
# 创建 SparkSession 对象
spark = SparkSession.builder.appName("CreateDataFrameDemo").getOrCreate()
# 定义数据
names = ['John', 'Mike', 'Sara', 'Emily']
ages = [30, 25, 28, 32]
salaries = [50000, 40000, 45000, 55000]
# 使用 Row 对象将数据组合到一起
data = [Row(name=n, age=a, salary=s) for n, a, s in zip(names, ages, salaries)]
# 创建数据框
df = spark.createDataFrame(data)
# 显示数据框
df.show()
输出结果为:
+---+------+-----+
|age|salary| name|
+---+------+-----+
| 30| 50000| John|
| 25| 40000| Mike|
| 28| 45000| Sara|
| 32| 55000|Emily|
+---+------+-----+