Apache Spark Dataframe Groupby agg() 用于多列 [英] Apache Spark Dataframe Groupby agg() for multiple columns

查看:59
本文介绍了Apache Spark Dataframe Groupby agg() 用于多列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有 3 列的 DataFrame,即 Id、First Name、Last Name

I have a DataFrame with 3 columns i.e. Id, First Name, Last Name

我想在 Id 的基础上应用 GroupBy 并希望收集 First Name, Last Name 列作为列表.

I want to apply GroupBy on the basis of Id and want to collect First Name, Last Name column as list.

示例:- 我有一个这样的 DF

Example :- I have a DF like this

+---+-------+--------+
|id |fName  |lName   |
+---+-------+--------+
|1  |Akash  |Sethi   |
|2  |Kunal  |Kapoor  |
|3  |Rishabh|Verma   |
|2  |Sonu   |Mehrotra|
+---+-------+--------+

我想要这样的输出

+---+-------+--------+--------------------+
|id |fname           |lName               |
+---+-------+--------+--------------------+
|1  |[Akash]         |[Sethi]             |
|2  |[Kunal, Sonu]   |[Kapoor, Mehrotra]  |
|3  |[Rishabh]       |[Verma]             |
+---+-------+--------+--------------------+

提前致谢

推荐答案

您可以像这样聚合多个列:

You can aggregate multiple columns like this:

df.groupBy("id").agg(collect_list("fName"), collect_list("lName"))

它会给你预期的结果.

这篇关于Apache Spark Dataframe Groupby agg() 用于多列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆