Как детектировать перекос данных (data skew) в Spark?

Перекос виден, когда несколько tasks обрабатывают заметно больше данных и работают дольше остальных. Сравните размеры партиций, shuffle read, spill и длительность в Spark UI.

Короткий ответ

Что ответить на собеседовании

Перекос виден, когда несколько tasks обрабатывают заметно больше данных и работают дольше остальных. Сравните размеры партиций, shuffle read, spill и длительность в Spark UI.

Подробный разбор

Ответ с пояснениями

Перекос виден, когда несколько tasks обрабатывают заметно больше данных и работают дольше остальных. Сравните размеры партиций, shuffle read, spill и длительность в Spark UI.

Проверьте частоты ключей, особенно NULL и значения-заглушки. Отличайте skew данных от медленного узла или внешнего сервиса.

Если один ключ даёт основную нагрузку, простое увеличение числа партиций не разделит его автоматически. Сначала локализуйте стадию и ключ, затем выбирайте изменение распределения, broadcast или отдельную обработку горячей группы.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее