Я использую простой групповой запрос в scala spark, цель которого - получить первое значение в группе в отсортированном кадре данных.Вот мой искровой фрейм данных
+---------------+------------------------------------------+
|ID |some_flag |some_type | Timestamp |
+---------------+------------------------------------------+
| 656565654| true| Type 1|2018-08-10 00:00:00|
| 656565654| false| Type 1|2017-08-02 00:00:00|
| 656565654| false| Type 2|2016-07-30 00:00:00|
| 656565654| false| Type 2|2016-05-04 00:00:00|
| 656565654| false| Type 2|2016-04-29 00:00:00|
| 656565654| false| Type 2|2015-10-29 00:00:00|
| 656565654| false| Type 2|2015-04-29 00:00:00|
+---------------+----------+-----------+-------------------+
Вот мой совокупный запрос
val sampleDF = df.sort($"Timestamp".desc).groupBy("ID").agg(first("Timestamp"), first("some_flag"), first("some_type"))
Ожидаемый результат:
+---------------+-------------+---------+-------------------+
|ID |some_falg |some_type| Timestamp |
+---------------+-------------+---------+-------------------+
| 656565654| true| Type 1|2018-08-10 00:00:00|
+---------------+-------------+---------+-------------------+
Но получается следующий странный вывод, и он продолжает менятьсякак случайная строка
+---------------+-------------+---------+-------------------+
|ID |some_falg |some_type| Timestamp |
+---------------+-------------+---------+-------------------+
| 656565654| false| Type 2|2015-10-29 00:00:00|
+---------------+-------------+---------+-------------------+
Также обратите внимание, что в кадре данных нет нулей.Я чешу голову там, где я делаю что-то не так.Нужна помощь!