gpt4 book ai didi

python - Pyspark - 分组并收集多列列表并创建多列

转载 作者:行者123 更新时间:2023-12-05 08:38:35 31 4
gpt4 key购买 nike

我有以下数据框,我正在尝试对其进行分组和聚合数据。

Column_1 Column_2 Column_3
A N1 P1
A N2 P2
A N3 P3
B N1 P1
C N1 P1
C N2 P2

要求的输出:

Column_1 Column_2 Column_3
A N1,N2,N3 P1,P2,P3
B N1 P1
C N1,N2 P1,P2

我可以通过使用 partition 和 groupby 创建一个窗口来在一列上完成它。然后我在窗口上使用 collect list 和 group by 并聚合以获得一列。这适用于一列。

如何在 2 列上执行相同的操作。请帮忙

最佳答案

agg group by 的功能可以采用多个聚合函数。您可以添加 collect_list两次:

df.groupby('Column_1').agg(F.collect_list('Column_2'), F.collect_list('Column_3')).orderBy('Column_1').show()

打印

+--------+----------------------+----------------------+
|Column_1|collect_list(Column_2)|collect_list(Column_3)|
+--------+----------------------+----------------------+
| A| [N1, N2, N3]| [P1, P2, P3]|
| B| [N1]| [P1]|
| C| [N1, N2]| [P1, P2]|
+--------+----------------------+----------------------+

对于简单的分组,不需要使用 Window .

关于python - Pyspark - 分组并收集多列列表并创建多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62322973/

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