Всем привет. читаю спарком большой gzip (внутри csv), делаю некоторые

простецкие трансформации по типу кастинга дат и затем пишу в паркет. для простоты эксперимента использую 1 воркер (глюшный G1.X).

Джоба падает (предположительно с ООМ), что в целом мне понятно, поскольку gzip не сплитабл, всё в одном партишене и тд. При этом, если добавить .repartition(N), то джоба перестает падать, всё на том же одном воркере.

Может кто-то объяснить как в этом случае помогает .repartition? у спарка есть какие-то лимиты по памяти по партишенам?

4 ответов

24 просмотра

есть предположение что партишены можно хотя бы последовательно посчитать независимо друг от друга если памяти мало, а вот 1 партишен нельзя, его надо грузить весь

Mi
есть предположение что партишены можно хотя бы пос...

Полностью поддерживаю это предположение, потому что записи последовательно скидываются в шафл-файлы. Потом шафл-файлы читаются, в этом кейсе, по одному. А чтобы сохранить паркет нужно накопить записи в буфере. Буфер получается меньше, сохранение легче даже на одном экзекуторе

Aleksandr- Автор вопроса

спасибо за предположения. сегодня ещё попробовал поковырять джобу в spark-ui - особо полезной информации не нашел. Также попробовал другие данные gzip-нутые запроцессить и наткнулся на какую-то интересную особенность - одна таблица 100мб gzip падает при попытке чтения/записи в паркет, другая 2гб gzip с теми же самыми операциями процессится нормально, правда долго и с каким-то дикими спиллами: Shuffle Spill (Memory): 33.9 GB Shuffle Spill (Disk): 8.1 GB

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта