gpt4 book ai didi

python - 如何转换 Pyspark 中 Dataframe 中的列表列表,每个列表都列出每个属性的值?

转载 作者:太空宇宙 更新时间:2023-11-04 04:56:41 24 4
gpt4 key购买 nike

我有一个列表类型:

[[1, 2, 3], ['A', 'B', 'C'], ['aa', 'bb', 'cc']]

每个列表都包含属性“A1”、“A2”和“A3”的值。

我想获取下一个数据框:

+----------+----------+----------+ 
| A1 | A2 | A3 |
+----------+----------+----------+
| 1 | A | aa |
+----------+----------+----------+
| 2 | B | bb |
+----------+----------+----------+
| 3 | C | cc |
+----------+----------+----------+

我该怎么做?

最佳答案

您可以创建一个以标题作为字段的行类,并使用 zip 按行遍历列表并为每一行构造一个行对象:

lst = [[1, 2, 3], ['A', 'B', 'C'], ['aa', 'bb', 'cc']]

from pyspark.sql import Row

R = Row("A1", "A2", "A3")
sc.parallelize([R(*r) for r in zip(*lst)]).toDF().show()
+---+---+---+
| A1| A2| A3|
+---+---+---+
| 1| A| aa|
| 2| B| bb|
| 3| C| cc|
+---+---+---+

或者如果你安装了 pandas,先创建一个 pandas 数据框;您可以使用 spark.createDataFrame 直接从 pandas 数据框创建 spark 数据框:

import pandas as pd
headers = ['A1', 'A2', 'A3']

pdf = pd.DataFrame.from_dict(dict(zip(headers, lst)))
spark.createDataFrame(pdf).show()
+---+---+---+
| A1| A2| A3|
+---+---+---+
| 1| A| aa|
| 2| B| bb|
| 3| C| cc|
+---+---+---+

关于python - 如何转换 Pyspark 中 Dataframe 中的列表列表,每个列表都列出每个属性的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com