我需要根据嵌套列表创建一个数据框
我尝试了不同的方法,但是都没有效果
R = Row("id","age","serial")
List=[[1,2,3],[4,5,6],[7,8,9]]
sp=spark.createDataFrame([R(i) for i in (List)])
预期:
答案 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|
+---+---+------+