Spark использует broadcast hash, shuffled hash, sort-merge и nested loop; для некоторых условий возможен Cartesian product. Выбор зависит от ключей и размеров.
Какие виды физических JOIN-ов существуют в Spark?
Spark использует broadcast hash, shuffled hash, sort-merge и nested loop; для некоторых условий возможен Cartesian product. Выбор зависит от ключей и размеров.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Spark использует broadcast hash, shuffled hash, sort-merge и nested loop; для некоторых условий возможен Cartesian product. Выбор зависит от ключей и размеров.
Broadcast hash подходит, когда одну сторону можно безопасно разослать executors. Sort-merge сопоставляет отсортированные партиции, shuffled hash строит локальные хеш-таблицы после распределения по ключу.
При отсутствии подходящего равенства может понадобиться nested loop. Посмотрите explain и фактический план: AQE способен изменить стратегию во время исполнения. Подсказка JOIN не гарантирует применение, если стратегия несовместима с условиями или типом соединения.
Источник: Документация Apache Kafka.