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
Run Code Online (Sandbox Code Playgroud)
所需输出:
Column_1 Column_2 Column_3
A N1,N2,N3 P1,P2,P3
B N1 P1
C N1,N2 P1,P2
Run Code Online (Sandbox Code Playgroud)
我可以通过使用分区和分组创建一个窗口来完成一列的操作。然后我在窗口上使用收集列表和分组并聚合以获得一列。这适用于一列。
如何在 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()
Run Code Online (Sandbox Code Playgroud)
印刷
+--------+----------------------+----------------------+
|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]|
+--------+----------------------+----------------------+
Run Code Online (Sandbox Code Playgroud)
对于简单的分组,不需要使用Window。
| 归档时间: |
|
| 查看次数: |
5905 次 |
| 最近记录: |