如何解决在Spark scakla中将groupBy和agg用于多个列
我有一个包含4列的DataFrame。我想基于2列应用GroupBy
,并希望将其他列收集为列表。
示例:-我有一个像这样的DF
+---+-------+--------+-----------+
|id |fName |lName |dob |
+---+-------+--------+-----------+
|1 |Akash |Sethi |23-05-1995 |
|2 |Kunal |Kapoor |14-10-1992 |
|3 |Rishabh|Verma |11-08-1994 |
|2 |Sonu |Mehrotra|14-10-1992 |
+---+-------+--------+-----------+
并且我想要这样的输出:-
+---+-----------+-------+--------+--------------------+
|id |dob |fname |lName |
+---+-----------+-------+--------+--------------------+
|1 |23-05-1995 |[Akash] |[Sethi] |
|2 |14-10-1992 |[Kunal,Sonu] |[Kapoor,Mehrotra] |
|3 |11-08-1994 |[Rishabh] |[Verma] |
+---+-----------+-------+--------+--------------------+
解决方法
您可以使用agg做类似的事情
df.groupBy("id","dob").agg(collect_list(col("fname")),collect_list(col("lName")))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。