Scala 对Spark scakla中的多个列使用groupBy和agg
我有一个4列的数据框。我想在2列的基础上应用Scala 对Spark scakla中的多个列使用groupBy和agg,scala,dataframe,apache-spark,group-by,aggregate,Scala,Dataframe,Apache Spark,Group By,Aggregate,我有一个4列的数据框。我想在2列的基础上应用GroupBy,并想收集其他列作为列表。 示例:-我有一个这样的DF +---+-------+--------+-----------+ |id |fName |lName |dob | +---+-------+--------+-----------+ |1 |Akash |Sethi |23-05-1995 | |2 |Kunal |Kapoor |14-10-1992 | |3 |Rishabh|Verma
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")))
您可以使用agg执行类似的操作
df.groupBy("id","dob").agg(collect_list(col("fname")),collect_list(col("lName")))