数据量小的时候无所谓,数据量大的情况下,由于COUNT DISTINCT操作需要用一个Reduce Task来完成,这一个Reduce需要处理的数据量太大,就会导致整个Job很难完成,一般COUNT DISTINCT使用先GROUP BY再COUNT的方式替换:方法一:
select name,count(distinct(related_id)) from emp group by name;
方法二:
select name,related_id,count(*) from emp group by name,related_id;t1
select name,count(related_id) from t1 group by name;
原创不易,关注一下呗!