знаю.. Изучаю Scala потихоньку.
Есть
| uid | timestamp|
---------------------
| 555 | 12356788|
| 555 | 16776678|
| 555 | 16657556|
Ну в общем uid дофига одинаковых есть, но из поля timestamp надо выбрать наибольшее значение и вывести с uid. Одна строка получится. Пытаюсь max(expr) использовать:
.withColumn("c_max", max(col("timestamp")))
Но что-то не так делаю. Подскажите или пример такой же скиньте плиз!?
https://stackoverflow.com/questions/34249841/spark-dataframe-reducebykey-like-operation
Спасибо, сейчас изучу.
Ну тут максимум не показано как выбрать
df.groupBy($"key").agg(sum($"value").alias("value")) вместо sum надо max подставить. Я предпочитаю RDD api, так что могу ошибаться, но должно работать
тут без групбая можно, достаточно найти индекс максимального timestamp. За линию в 1 проход
Обсуждают сегодня