当前位置: 首页 > news >正文

spark sql 广播模式参数

Spark SQL 中,广播(Broadcast)模式常用于处理 Join 操作时的小表与大表的场景,尤其是在小表较小,可以被广播到每个 Executor 时,能够显著提升性能,避免了分布式 Shuffle 的开销。

Spark SQL 自动检测并使用广播模式,但可以通过以下几个参数进行手动控制和调整:

1. spark.sql.autoBroadcastJoinThreshold

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

 

bash复制

--conf spark.sql.autoBroadcastJoinThreshold=104857600 # 100MB

2. spark.sql.broadcastTimeout

广播表的超时时间(以毫秒为单位)。默认是 300 秒(5 分钟),如果小表广播时间过长,可以通过调整该参数来设置更长的超时时间。

 

bash复制

--conf spark.sql.broadcastTimeout=600000 # 10分钟

3. spark.sql.shuffle.partitions

虽然该参数不是专门针对广播的,但它会影响 Join 操作中的分区数,从而间接影响广播的性能。如果你在使用广播时遇到分区数不合理的问题,可以通过调整该参数。

 

bash复制

--conf spark.sql.shuffle.partitions=500 # 默认值为 200

4. spark.sql.adaptive.autoBroadcastJoinThreshold

从 Spark 3.x 开始,引入了自适应执行,该参数允许 Spark 在运行时动态调整广播的阈值。默认情况下,Spark 会根据当前作业的统计信息动态调整。如果你希望关闭自适应广播,可以将该参数设置为 -1

 

bash复制

--conf spark.sql.adaptive.autoBroadcastJoinThreshold=-1 # 关闭自适应广播

5. spark.sql.adaptive.skewedJoin.enabled

如果在使用广播模式时遇到了数据倾斜问题,可以启用自适应倾斜 Join 功能,Spark 会动态地将倾斜的分区重新划分,以避免广播时出现性能瓶颈。

 

bash复制

--conf spark.sql.adaptive.skewedJoin.enabled=true

示例

以下是一个完整的示例,展示了如何在提交 Spark SQL 作业时调整广播相关的参数:

 

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 的性能。


http://www.mrgr.cn/news/55418.html

相关文章:

  • 火山引擎数智平台 VeDI:A/B 实验互斥域流量分配体系上线
  • idea 2023 创建 springboot 项目 LTS
  • 基于SSM机场网上订票系统的设计
  • Java集合常见知识总结(中)
  • 【某农业大学计算机网络实验报告】实验二 交换机的自学习算法
  • 嵌软面试一百问(持续更新中)
  • 新手必看!项目管理PMP,离了工具你还OK吗?
  • 仓颉刷题遇到问题汇总
  • Linux——shell 编程基础
  • 用AI自动化视频创作,轻松解放双手!!
  • 一款开源屏幕共享神器,有浏览器就能投屏,爽歪歪了
  • robocopy 拷贝远程服务器文件夹
  • Open3D-Geometry-12:ISS固有形状特征检测模块
  • excel导出加密
  • Win安装Redis
  • Fastapi之model_validator
  • 基于springboot招聘信息管理系统设计与实现(源码+定制+开发)
  • 金九银十互联网大厂Java高频面试题(2024最新含答案)
  • HSIC规范V1.0
  • 易语言注册机速成开发撸彩网论坛分享项目
  • 【JS逆向百例】某赚网 WebSocket 套 Webpack 逆向分析
  • Rust编程语言变量的所有权(ownership)
  • Sqlite3 操作笔记
  • CTFHUB技能树之XSS——过滤空格
  • 安达发|日化品APS智能排产系统的物料齐套欠料分析
  • 【已解决】Eclipse下载安装和环境配置 超详细教程 小白