1、出现最后一个reduce过不去的情况
(1)现象:
(2)原因:使用了count(distinct field.....)
(3)方案:修改为:rownumber
select uid,count(*) as aa from
(
select uid,devid,row_number()over(partition by uid,devid) rnks from table
)a
where a.rnks=1
group by uid;
(4)修改之后的现象
原因:这个增加了一个reduce阶段。
(5)被排除的方案
select uid,count(*) as aa
from (select uid,devid from table group by uid,devid)a
where a.rnks=1 group by uid;
原因:没有改表reduce和map的过程,过程和直接使用count(distinct)是一样的。也就是和之前的失败的现象是一样的。