2017-03-17 122 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")) 

它會給你預期的結果。