Spark-为什么交换阶段的任务数量与spark.sql.shuffle.partitions不同

问题描述

tl; dr

我的印象是,在交换阶段,我应该能够看到与spark.sql.shuffle.partitions中定义的任务数量相同的任务。如Spark Internal Documentation中所述:“执行查询时,您应该看到Web UI中使用了200个左右的分区。”但是,当我使用Spark 3.0.0使用Databricks的笔记本启动简单查询时,我注意到此值与在Spark UI上看到的值不同,并且似乎被除以一半。

我有一个简单的查询%sql SELECT Country,sum(quantity) FROM online_retail group by Country,并使用了Databricks数据集dbfs:/databricks-datasets/online_retail/data-001/

如果我设置了spark.sql.shuffle.partitions = 50查询计划中,我可以看到Exchange hashpartitioning(Country#94,50),true,[id=#543],但是Spark UI显示了25个任务。

请提出我在这里缺少的任何内容,感谢您的帮助!

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)