Узкая зависимость позволяет обрабатывать ограниченные родительские partitions локально; широкая требует перераспределения данных между partitions, то есть shuffle.
Чем отличаются узкие и широкие трансформации в Spark?
Узкая зависимость позволяет обрабатывать ограниченные родительские partitions локально; широкая требует перераспределения данных между partitions, то есть shuffle.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Узкая зависимость позволяет обрабатывать ограниченные родительские partitions локально; широкая требует перераспределения данных между partitions, то есть shuffle.
Примеры узких операций — map и filter. Группировка по ключу и многие joins создают широкие зависимости. Shuffle требует сети, диска и синхронизации этапов, поэтому обычно дороже. Конкретный join может избежать shuffle при подходящем broadcast или уже совместимом распределении: классифицировать надо фактический план, а не только имя метода.