У меня есть dataframe с столбцом по имени c1, c2, c3, c4. Я хочу, чтобы сгруппировать его на колонке и использовать функцию AGG на другой колонке, например, мин/макс/AGG .. и т.д., и получить соответствующее другое значение столбца, основываясь на результате функции AGGDataframe groupBy, получить значение соответствующих строк, основанное на результате агрегатной функции
Пример:
c1 c2 c3 c4
1 23 1 1
1 45 2 2
1 91 3 3
1 90 4 4
1 71 5 5
1 42 6 6
1 72 7 7
1 44 8 8
1 55 9 9
1 21 0 0
Если результат:
c1 c2 c3 c4
1 91 3 3
пусть dataframe быть ДФ
df.groupBy($"c1").agg(max($"c2"), ??, ??)
может кто-то пожалуйста, Хель p что должно пойти на место?
Я знаю решение этой проблемы с помощью RDD. Требуется, чтобы исследовать, может ли это быть решить в более простой способ использования Dataframe/Dataset апи
Я нашел этот ответ полезным. Он предлагает делать именно то, что вы хотите. : https://stackoverflow.com/questions/41236804/spark-dataframes-reducing-by-key – user238607