repartition(n) делает shuffle до n партиций (увеличить/уменьшить равномерно); coalesce(n) уменьшает число без полного shuffle (слияние), быстрее, но может оставить перекос.
Разбор
- Перед записью многих мелких файлов coalesce/repartition под целевое число.
- Увеличение партиций — только repartition.
- repartition по колонкам = hash partitioner.
- Слишком агрессивный coalesce(1) = один гигантский файл/task.
Итог
repartition — shuffle к новому числу; coalesce — дешёвое уменьшение с риском skew.