【问题标题】:why count query with where condition needs shuffling of data?为什么要使用 where 条件计算查询需要对数据进行改组?
【发布时间】:2018-06-17 14:57:40
【问题描述】:

通过更改参数“spark.sql.shuffle.partitions”,以下查询的性能会有所不同。下面的查询需要改组吗?

从id不为空的表中选择count(*)

我的另一个疑问是,下图中两个阶段之间的界线是什么。是洗牌的意义吗?

【问题讨论】:

  • 我猜实际记录不需要在分区之间交换,但需要交换聚合器(包含count作为唯一信息)

标签: apache-spark shuffle


【解决方案1】:

在第一阶段,所有任务计算单个任务级别计数,然后聚合计数转移到第二阶段,第二阶段将所有计数相加并给出最终计数。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    相关资源
    最近更新 更多