Как физически происходит механизм broadcast — как партиции маленькой таблицы попадают на executor'ы с большой таблицей?

При broadcast join небольшая сторона подготавливается как общая структура и передаётся executors, чтобы они соединяли её со своими частями большого набора.

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

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

При broadcast join небольшая сторона подготавливается как общая структура и передаётся executors, чтобы они соединяли её со своими частями большого набора.

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

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

При broadcast join небольшая сторона подготавливается как общая структура и передаётся executors, чтобы они соединяли её со своими частями большого набора.

В Spark SQL BroadcastExchange собирает и подготавливает build-side, после чего механизм broadcast распространяет сериализованное представление. Это не раздача каждой исходной партиции только одному executor: получателям нужен весь малый набор для локального сопоставления.

Большая сторона благодаря этому может избежать перераспределения только ради JOIN. Но малая таблица должна помещаться в памяти с учётом внутренней структуры; её размер в сжатом файле не равен расходу RAM.

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

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

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

Подробнее