Was*_*oui 6 optimization performance shuffle apache-spark apache-spark-sql
我刚刚了解了 Spark 3.0 中引入的新自适应查询执行 (AQE)。
在AQE决定切换到广播模式之前,第一阶段和第二阶段已经完全结束(包括地图侧洗牌)。
我的问题:既然两个数据集已经写入磁盘进行洗牌(地图侧洗牌),那么切换到广播是否已经太晚了?在大多数情况下,这种切换会比继续进行reduce side shuffle 更有效吗?我想是的,因为 Databricks 的人已经做了这个选择,但我想确保我没有错过任何东西..
由于两个数据集已经写入磁盘进行洗牌(地图侧洗牌),切换到广播是否已经太晚了? - 完全有道理的担忧,但“迟到总比不到好”,对吧?;-) Spark 性能调优提到:
\n\n\n...这不如一开始就计划广播散列连接那么有效,但它比继续进行排序合并连接要好,因为\n我们可以保存连接两侧的排序,并在本地读取随机播放文件以节省网络流量(如果\n
\nspark.sql.adaptive.localShuffleReader.enabled为 true)
spark.sql.adaptive.localShuffleReader.enabledSpark 3.0 中添加了运行时配置,默认设置为 true。
我还认为,一旦执行器端广播SPARK-17556出现,它就可以提供帮助/构建。
\n| 归档时间: |
|
| 查看次数: |
1750 次 |
| 最近记录: |