groupBy(keys).agg(...) агрегирует меры по ключам (sum, count, avg…). Обычно вызывает shuffle (hash/sort aggregate).
Разбор
- countDistinct дороже count.
- После groupBy колонки ключей + агрегаты.
- Cube/rollup — продвинутые группировки.
- Смотрите data skew по ключу.
Итог
groupBy/agg — агрегации с возможным shuffle; следите за ключом и skew.