2017-03-17 102 views
4

我有一个DataFrame 3列即Id, First Name, Last Name阿帕奇星火数据框GROUPBY AGG()为多列

我想要的Id的基础上,运用GroupBy并希望收集First Name, Last Name列清单。

例子: - 我有一个DF这样

+---+-------+--------+ 
|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]    | 
+---+-------+--------+--------------------+ 

感谢我提前输出

回答

2

您可以聚合这样的多列:

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

它会给你预期的结果。