Size: a a a

2021 July 27

A

Alex in Moscow Spark
у нас на днях датасатанисты удивлялись почему в паркете один объём, а когда делаешь persist то пишет на диски в разы больше
источник

ЕГ

Евгений Глотов... in Moscow Spark
А, ну там не пожато вообще
источник

ЕГ

Евгений Глотов... in Moscow Spark
Поэтому чаще всего лучше сохранить в паркет, а не кэшить
источник

ЕГ

Евгений Глотов... in Moscow Spark
А если sortWithinPartitions по тем же колонкам, что и в исходнике, после репартишена сделать?
источник

ЕГ

Евгений Глотов... in Moscow Spark
Действительно может помочь пожать раза в 2, если не больше
источник

A

Alex in Moscow Spark
да, поэтому после репартишенов и может повторное сохранение выдать в разы больше данных
источник

ЕГ

Евгений Глотов... in Moscow Spark
Если сортировка данных в разных колонках прям сильно коррелирует
источник

A

Alex in Moscow Spark
ждём что скажет автор вопроса =)
источник

ИК

Иван Калининский... in Moscow Spark
Все причины, перечисленные Алексом возможны. Плюс ещё одна: мелкие файлы состоят из одного блока. Поэтому в них dictionary encoding работает лучше (меньше вариантов, не превышен порог), run length encoding также лучше и нет оверхеда на заголовки. То есть корневые причины всё те же. Snappy при этом тоже может немного сильнее сжиметь, но это будет малозаметно.

Ради интереса, можно уточнить количество исходных файлов и инструмент, которыем они были записаны?
источник

ИК

Иван Калининский... in Moscow Spark
Тут не нужны lowerbound/upperbound. Это сохранение, а не чтение, например, с помощью JDBC из RDBMS
источник

S

Snoop Duck in Moscow Spark
В исходной директории 7 тысяч файлов. Это сырые данные из кафки, перегруженные в хдфс джобой структурного стриминга спарка без какой-то дополнительной сортировки
источник

S

Snoop Duck in Moscow Spark
источник

S

Snoop Duck in Moscow Spark
В исходнике данные не отсортированы 🤷‍♂️
источник

ЕГ

Евгений Глотов... in Moscow Spark
Тогда фиг знает вообще)
источник

ИК

Иван Калининский... in Moscow Spark
в каком-то смысле сортировка есть: таймстемпы и даты событий идут последовательно по возрастанию, как и суррогатные ключи - айдишники. Некоторые категории (внешние ключи) тоже могут быть одними и теми же, если партишен топика кафки завязан на них, или по другим причинам

Вот этот кейс - ещё одна причина задуматься перед тем, как сделать repartition(n). Перетасованные по хешам записи - не всегда именно то, что нужно. Очень возможно, что изучение распределения данных в исходных файлах прояснит причины, но это отдельная и достаточно большая активность.

Но часто достаточно того, что файлов стало меньше, пусть и увеличился их размер
источник

ЕГ

Евгений Глотов... in Moscow Spark
Ходуб большой😆
источник

NN

No Name in Moscow Spark
"...ему видней"
источник

С

Сергей in Moscow Spark
всем привет!
есть одна проблема с которой не могу справиться, прошу помочь, процесс  падает с ошибкой job aborted  когда начинает писать, но что странное, иногда работает иногда падает, и мне не понятна причина , может есть каки-то идеи
источник

ИК

Иван Калининский... in Moscow Spark
поищи в логе в стеке исключения caused by. Там будет исключение, которое вызвало остановку джобы
источник

С

Сергей in Moscow Spark
спасибо , щас гляну попробую разобраться. если что обращусь )
источник