При broadcast join небольшая сторона подготавливается как общая структура и передаётся executors, чтобы они соединяли её со своими частями большого набора.
Как физически происходит механизм broadcast — как партиции маленькой таблицы попадают на executor'ы с большой таблицей?
При broadcast join небольшая сторона подготавливается как общая структура и передаётся executors, чтобы они соединяли её со своими частями большого набора.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
При broadcast join небольшая сторона подготавливается как общая структура и передаётся executors, чтобы они соединяли её со своими частями большого набора.
В Spark SQL BroadcastExchange собирает и подготавливает build-side, после чего механизм broadcast распространяет сериализованное представление. Это не раздача каждой исходной партиции только одному executor: получателям нужен весь малый набор для локального сопоставления.
Большая сторона благодаря этому может избежать перераспределения только ради JOIN. Но малая таблица должна помещаться в памяти с учётом внутренней структуры; её размер в сжатом файле не равен расходу RAM.