pan*_*Box 2 python apache-spark-sql pyspark
我想将两个列表转换为pyspark数据框,其中列表分别是列。
我试过了
a=[1, 2, 3, 4]
b=[2, 3, 4, 5]
sqlContext.createDataFrame([a, b], schema=['a', 'b']).show()
Run Code Online (Sandbox Code Playgroud)
但是我得到了
+---+---+---+---+
| a| b| _3| _4|
+---+---+---+---+
| 1| 2| 3| 4|
| 2| 3| 4| 5|
+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)
我真正想要的是:
+---+---+
| a| b|
+---+---+
| 1| 2|
| 2| 3|
| 3| 4|
| 4| 5|
+---+---+
Run Code Online (Sandbox Code Playgroud)
是否有方便的方法来创建此结果?
只需转置列表:
sqlContext.createDataFrame(zip(a, b), schema=['a', 'b']).show()
Run Code Online (Sandbox Code Playgroud)
我不直接了解 pyspark,但我猜测不是这个数据结构:
[[1, 2, 3, 4],
[2, 3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)
你需要给它这个
[[1, 2],
[2, 3],
[3, 4],
[4, 5]]
Run Code Online (Sandbox Code Playgroud)
从数据结构到所需数据的一种解释方法是使用 numpy 进行转置:
import numpy as np
a=[1, 2, 3, 4]
b=[2, 3, 4, 5]
sqlContext.createDataFrame((np.array([a, b])).T, schema=['a', 'b']).show()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3357 次 |
最近记录: |