spark sql 广播模式参数

打印 上一主题 下一主题

主题 898|帖子 898|积分 2694

Spark SQL 中,广播(Broadcast)模式常用于处理 Join 操作时的小表与大表的场景,尤其是在小表较小,可以被广播到每个 Executor 时,能够显著提拔性能,制止了分布式 Shuffle 的开销。
Spark SQL 自动检测并利用广播模式,但可以通过以下几个参数进行手动控制和调整:
1. spark.sql.autoBroadcastJoinThreshold

该参数用于设置小表的最大大小(以字节为单位),超过该值的表不会被自动广播。默认值通常是 10MB(10485760 字节),可以根据数据量进行调整。设置为 -1 ,关闭广播模式


  1. [/code] bash复制
  2. [table][tr][td]--conf spark.sql.autoBroadcastJoinThreshold=104857600 # 100MB[/td][/tr][/table] [size=3]2. spark.sql.broadcastTimeout[/size]
  3. 广播表的超时时间(以毫秒为单位)。默认是 300 秒(5 分钟),如果小表广播时间过长,可以通过调整该参数来设置更长的超时时间。
  4. [code]
复制代码
bash复制
--conf spark.sql.broadcastTimeout=600000 # 10分钟
3. spark.sql.shuffle.partitions

虽然该参数不是专门针对广播的,但它会影响 Join 操作中的分区数,从而间接影响广播的性能。如果你在利用广播时遇到分区数不合理的问题,可以通过调整该参数。
  1. [/code] bash复制
  2. [table][tr][td]--conf spark.sql.shuffle.partitions=500 # 默认值为 200[/td][/tr][/table] [size=3]4. spark.sql.adaptive.autoBroadcastJoinThreshold[/size]
  3. 从 Spark 3.x 开始,引入了自适应执行,该参数答应 Spark 在运行时动态调整广播的阈值。默认环境下,Spark 会根据当前作业的统计信息动态调整。如果你盼望关闭自适应广播,可以将该参数设置为 -1。
  4. [code]
复制代码
bash复制
--conf spark.sql.adaptive.autoBroadcastJoinThreshold=-1 # 关闭自适应广播
5. spark.sql.adaptive.skewedJoin.enabled

如果在利用广播模式时遇到了数据倾斜问题,可以启用自适应倾斜 Join 功能,Spark 会动态地将倾斜的分区重新划分,以制止广播时出现性能瓶颈。
  1. [/code] bash复制
  2. [table][tr][td]--conf spark.sql.adaptive.skewedJoin.enabled=true[/td][/tr][/table] [size=3]示例[/size]
  3. 以下是一个完备的示例,展示了怎样在提交 Spark SQL 作业时调整广播相关的参数:
  4. [code]
复制代码
bash复制
spark-submit \
--conf spark.sql.autoBroadcastJoinThreshold=104857600 \
--conf spark.sql.broadcastTimeout=600000 \
--conf spark.sql.shuffle.partitions=500 \
--conf spark.sql.adaptive.autoBroadcastJoinThreshold=-1 \
your_application.jar
总结



  • spark.sql.autoBroadcastJoinThreshold:控制小表自动广播的阈值。
  • spark.sql.broadcastTimeout:控制广播的超时时间。
  • spark.sql.shuffle.partitions:影响分区数,从而影响 Join 操作的性能。
  • spark.sql.adaptive.autoBroadcastJoinThreshold:控制自适应执行时广播的阈值。
根据你的数据规模和场景,合理调整这些参数可以帮助优化 Spark SQL 的性能。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表