Встречается на собеседованиях • сегодня

Что такое 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
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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