#scala #dataframe #apache-spark #group-by #aggregate
#scala #фрейм данных #apache-spark #группировать по #агрегировать
Вопрос:
У меня есть фрейм данных с 4 столбцами. Я хочу применить GroupBy
на основе 2 столбцов и хочу собрать другие столбцы в виде списка. Пример:- У меня есть 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] |
--- ----------- ------- -------- --------------------
Ответ №1:
Вы можете сделать что-то подобное с помощью agg
df.groupBy("id","dob").agg(collect_list(col("fname")),collect_list(col("lName")))