【发布时间】:2018-06-17 14:57:40
【问题描述】:
通过更改参数“spark.sql.shuffle.partitions”,以下查询的性能会有所不同。下面的查询需要改组吗?
从id不为空的表中选择count(*)
我的另一个疑问是,下图中两个阶段之间的界线是什么。是洗牌的意义吗?
【问题讨论】:
-
我猜实际记录不需要在分区之间交换,但需要交换聚合器(包含
count作为唯一信息)
标签: apache-spark shuffle
通过更改参数“spark.sql.shuffle.partitions”,以下查询的性能会有所不同。下面的查询需要改组吗?
从id不为空的表中选择count(*)
我的另一个疑问是,下图中两个阶段之间的界线是什么。是洗牌的意义吗?
【问题讨论】:
count作为唯一信息)
标签: apache-spark shuffle
在第一阶段,所有任务计算单个任务级别计数,然后聚合计数转移到第二阶段,第二阶段将所有计数相加并给出最终计数。
【讨论】: