Broadcast join передаёт небольшую сторону соединения на executors, чтобы большая сторона могла соединяться локально без перераспределения всех своих строк по ключу.
Для чего нужен broadcast join в Spark?
Broadcast join передаёт небольшую сторону соединения на executors, чтобы большая сторона могла соединяться локально без перераспределения всех своих строк по ключу.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Broadcast join передаёт небольшую сторону соединения на executors, чтобы большая сторона могла соединяться локально без перераспределения всех своих строк по ключу.
Это полезно для большого факта и компактного справочника. Но размер нужно оценивать в памяти после представления данных, а не только по сжатому файлу на диске.
Слишком большая broadcast-сторона вызывает нехватку памяти и сетевые затраты, а сам обмен тоже не бесплатен. Подсказка broadcast не гарантирует применимость ко всем типам join. Проверяйте план и фактический размер перед выбором стратегии.