Перекос виден, когда несколько tasks обрабатывают заметно больше данных и работают дольше остальных. Сравните размеры партиций, shuffle read, spill и длительность в Spark UI.
Как детектировать перекос данных (data skew) в Spark?
Перекос виден, когда несколько tasks обрабатывают заметно больше данных и работают дольше остальных. Сравните размеры партиций, shuffle read, spill и длительность в Spark UI.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Перекос виден, когда несколько tasks обрабатывают заметно больше данных и работают дольше остальных. Сравните размеры партиций, shuffle read, spill и длительность в Spark UI.
Проверьте частоты ключей, особенно NULL и значения-заглушки. Отличайте skew данных от медленного узла или внешнего сервиса.
Если один ключ даёт основную нагрузку, простое увеличение числа партиций не разделит его автоматически. Сначала локализуйте стадию и ключ, затем выбирайте изменение распределения, broadcast или отдельную обработку горячей группы.