Window.partitionBy(...).orderBy(...) + rank/row_number/sum over — аналитические функции без схлопывания всех строк (в отличие от groupBy).
Разбор
- Большие partitionBy ключи → память/spill.
- row_number для дедупа по версии.
- frames: rowsBetween/rangeBetween.
- Shuffle по partitionBy спецификации.
Итог
Window считает аналитику в рамках партиции окна; следите за размером partition.