首页/数据/数仓建模速查/Spark 广播连接与广播变量
湖仓与引擎63 条

Spark 广播连接与广播变量

小表 join 大表时用 broadcast hint 或自动广播阈值把维度表复制到各 executor,避免 shuffle;广播变量也可用于分发配置与维表映射。

数仓建模速查数据更新于 2026-10-12
机制小表广播
阈值spark.sql.autoBroadcastJoinThreshold
写法broadcast hint
限制内存占用

广播连接

广播连接
from pyspark.sql.functions import broadcast

orders = spark.table('dwd_trade_order_di')
store  = spark.table('dim_store').where('is_current=1')
res = orders.join(broadcast(store), 'store_id', 'left')
res.show(5)
广播表超过阈值时会失败或把 driver 压垮,需要评估维表真实大小。

易错点

  • 维表膨胀后仍强行广播,executor 频繁 GC

数据来源与参考

  • Apache Spark 官方文档:Broadcast Joins
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌