Pad*_*123 3 python dataframe apache-spark pyspark
我有下面的数据框,我正在尝试对其进行分组和聚合数据。
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
我可以通过使用分区和分组创建一个窗口来完成一列的操作。然后我在窗口上使用收集列表和分组并聚合以获得一列。这适用于一列。
如何在 2 列上执行相同的操作。请帮忙
wer*_*ner 11
group by的agg函数可以采用多个聚合函数。您可以添加两次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。
| 归档时间: | 
 | 
| 查看次数: | 5905 次 | 
| 最近记录: |