从嵌套列表创建pyspark数据框

时间:2019-08-28 12:47:21

标签: pyspark

我需要根据嵌套列表创建一个数据框

我尝试了不同的方法,但是都没有效果

R = Row("id","age","serial")
List=[[1,2,3],[4,5,6],[7,8,9]]
sp=spark.createDataFrame([R(i) for i in (List)])

预期:

please find the expected outout here

1 个答案:

答案 0 :(得分:1)

您必须使用R(i)而不是R(*i)。这会将内部列表的各个元素传递到Row对象。

除此之外,zip必须应用于输入列表以获取元组列表,如下所示,

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

完整代码

R = Row("id","age","serial")
L=[[1,2,3],[4,5,6],[7,8,9]]
sp=spark.createDataFrame([R(*i) for i in zip(*L)])
sp.show()

输出:

+---+---+------+
| id|age|serial|
+---+---+------+
|  1|  4|     7|
|  2|  5|     8|
|  3|  6|     9|
+---+---+------+