gpt4 book ai didi

python - 如何在 PySpark 中将两列堆叠成一列?

转载 作者:行者123 更新时间:2023-12-04 16:27:45 24 4
gpt4 key购买 nike

我有以下 PySpark DataFrame:

id   col1   col2
A 2 3
A 2 4
A 4 6
B 1 2

我要堆叠 col1col2为了获得单列,如下所示:
id   col3
A 2
A 3
A 4
A 6
B 1
B 2

我该怎么做?
df = (
sc.parallelize([
(A, 2, 3), (A, 2, 4), (A, 4, 6),
(B, 1, 2),
]).toDF(["id", "col1", "col2"])
)

最佳答案

最简单的是合并col1col2进入数组列,然后 explode它:

df.show()
+---+----+----+
| id|col1|col2|
+---+----+----+
| A| 2| 3|
| A| 2| 4|
| A| 4| 6|
| B| 1| 2|
+---+----+----+

df.selectExpr('id', 'explode(array(col1, col2))').show()
+---+---+
| id|col|
+---+---+
| A| 2|
| A| 3|
| A| 2|
| A| 4|
| A| 4|
| A| 6|
| B| 1|
| B| 2|
+---+---+

如果您不需要它们,您可以删除重复项。

关于python - 如何在 PySpark 中将两列堆叠成一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59673403/

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