Выберите средство под причину skew: горячие ключи обрабатывают отдельно или разбивают salting, маленькую сторону join можно broadcast, а адаптивный движок — использовать для разбиения тяжёлых задач.
Как избежать/устранить перекос данных в Spark?
Выберите средство под причину skew: горячие ключи обрабатывают отдельно или разбивают salting, маленькую сторону join можно broadcast, а адаптивный движок — использовать для разбиения тяжёлых задач.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Выберите средство под причину skew: горячие ключи обрабатывают отдельно или разбивают salting, маленькую сторону join можно broadcast, а адаптивный движок — использовать для разбиения тяжёлых задач.
Перед изменением проверьте, не вызван ли перекос множеством NULL, плохим ключом распределения или дубликатами справочника. При salting нужно корректно подготовить обе стороны, чтобы не потерять и не размножить результат.
Переразбиение по тому же горячему ключу само по себе проблему не решает. После исправления сравните объём данных, распределение длительности tasks, spill и итоговые контрольные показатели.