TGViewer
дата инженеретта дата инженеретта @data_engineerette · 3.43K subscribers
Post #164 1.9K
repartition vs coalesce

💗 Вопрос у каждого первого.
Нужны для изменения количества партиций в датафрейме. Как итог - файлов на диске.

По умолчанию это 200, можно переопределить при создании спарк сессии конфигом spark.sql.shuffle.partitions

Посмотреть количество партиций можно так:

df.rdd.getNumPartitions()


📚 Пример. У нас есть датафрейм [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] с 4 партициями:

Partition A: 1, 2
Partition B: 3, 4, 5
Partition C: 6, 7
Partition D: 8, 9, 10

Делаем так:

df_nums.repartition(2)

Partition ABC: 1, 3, 5, 6, 8, 10
Partition XYZ: 2, 4, 7, 9


Repartition
🖇делает партиции равномерными
🖇может увеличивать и уменьшать количество партиций
🖇под капотом шафл

В нашем примере циферки из каждой партиции размазались двум финальным партициям - это и есть шафл (перетасовка данных между экзекьюторами).
Именно за счет шафла работает первое и второе.

df_nums.coalesce(2)

Partition A: 1, 2, 3, 4, 5
Partition C: 6, 7, 8, 9, 10


Coalesce
🖇равномерность не гарантирована
🖇может только уменьшать
🖇данные не шафлит, а склеивает

Файлы клеятся друг за другом (без шафла), поэтому умеет только уменьшать (из склеенных файлов обратно расклеить уже нельзя).
В нашем примере B просто приклеилось к A, а D к C

#spark_tips
  • 👍 13
  • 🤔 1
More from @data_engineerette
  1. Sep 30, 20265 октября начнется 19-й поток программы Data Engineer от Newprolab Программа для junior- и…
  2. Sep 25, 2026Как прошла SmartData 2026? Я вот перечитываю свои впечатления от прошлого года и понимаю,…
  3. Sep 24, 2026Исследование data-people Тут ребята из DevCrowd запустили ежегодное исследование специалис…
  4. Sep 15, 2026Каким должен быть хороший DE? Меня однажды спросили на собесе: 🤩Какие 3 качества важны дл…
  5. Sep 12, 2026Mermaid-диаграммы Наконец-то дошли руки поковыряться в mermaid-диаграммах, это что за имба…
  6. Sep 2, 2026Iceberg — это внезапный бум или планомерная подготовка? Заметили, как с определенного моме…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →