gpt4 book ai didi

apache-spark - PySpark:如何转置数据帧中的多列

转载 作者:行者123 更新时间:2023-12-04 02:29:41 26 4
gpt4 key购买 nike

我是 Spark 的新手,需要帮助将以下输入数据帧转换为所需的输出 df (行到列)使用 PySpark 或 Spark Sql。
输入数据帧-

A    B    C   D

1 2 3 4

10 11 12 13
......
........
所需的输出(转置)数据
A  1

B 2

C 3

D 4

A 11

B 12

C 13

D 14

....
......
如果我可以根据我们的要求对输入数据(列)进行透视会更好。

最佳答案

df = spark.createDataFrame([[1,2,3,4],[10,11,12,13]]).toDF('A','B','C','D')
+---+---+---+---+
| A| B| C| D|
+---+---+---+---+
| 1| 2| 3| 4|
| 10| 11| 12| 13|
+---+---+---+---+


df.select(
F.explode(
F.create_map(
*reduce(lambda x, y: x+y,
[[F.lit(col), col] for col in df.columns]
)
)
)
)
+---+-----+
|key|value|
+---+-----+
| A| 1|
| B| 2|
| C| 3|
| D| 4|
| A| 10|
| B| 11|
| C| 12|
| D| 13|
+---+-----+

关于apache-spark - PySpark:如何转置数据帧中的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65038470/

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