在Hive中,我相信count(distinct)比group-by更容易导致reducers的工作负载不平衡,最终只有一个reducer在努力。以下是示例查询。
为什么会这样呢?
示例查询:
select count(distinct user)
from some_table
按组别分组的版本(建议更快):
select count(*) from
(select user
from some_table
group by user) q
注意:第26张幻灯片在这个演示文稿中描述了这个问题。