Встречается на 5% собеседований по AI Engineer

Что такое broadcast join в Spark

Broadcast join — это оптимизация в Spark, при которой маленькая таблица (размером меньше spark.sql.autoBroadcastJoinThreshold, по умолчанию 10 МБ) передаётся на все узлы кластера, избегая shuffle. Это ускоряет join, так как данные локально доступны на каждом executor.

Пример:

python
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("broadcast_example").getOrCreate()

# Маленькая таблица
small_df = spark.createDataFrame([(1, "A"), (2, "B")], ["id", "value"])

# Большая таблица
large_df = spark.createDataFrame([(1, "X"), (2, "Y"), (3, "Z")], ["id", "data"])

# Явный broadcast
result = large_df.join(broadcast(small_df), "id")
result.show()

Нюансы:

  1. Автоматически работает при размере данных < порога
  2. Можно форсировать через broadcast()
  3. Избыточный broadcast больших данных может вызвать OOM

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы