Варианты: dropDuplicates, window row_number + filter rn=1, groupBy+agg(max). Для больших данных выбирайте по ключу и критерию «какую версию оставить».
Разбор
- dropDuplicates без order — произвольная строка.
- Window даёт контроль сортировки по ts.
- Сырой distinct дорог на wide rows.
- Идемпотентный MERGE в Delta/Iceberg для таблиц.
Итог
Дедуп = явный ключ+правило версии; window или MERGE надёжнее «слепого» distinct.