Hive distinct vs group by

select count(distinct id)
from mytbl;
select count(*)
from (select distinct id
      from mytbl
     ) t;

两个查询,都会在map阶段count,但reduce阶段,distinct只有一个, group by 可以有多个进行并行聚合,所以group by会快。

这个stackoverflow讨论中有人提出,当distinct后值很小时,distinct更快,因为在map完成了大部分的count。

所以,应该具体测试后决定其性能。

    原文作者:望京老司机
    原文地址: https://www.jianshu.com/p/3589b0b176e8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞