Hive数据去重


insert overwrite table log    
  select t.p_key,t.sort_word from     
    ( select p_key,    
           sort_word ,    
           row_number() over(distribute by p_key sort by sort_word) as rn   
     from log) t    
     where t.rn=1;    


说明:
1) p_key 为去重所依据的key,sort_word表示多个p_key的排列顺序,这个关键字将决定哪个p_key将留下
2) t 为子查询的别名,Hive需要在每个子查询后面加别名
3) t.rn=1表示重复的数据只保留第一个
4) distribute by 关键字指定分发的key,同一个key将分发到同一个reducer
5) sort by 是单机范围内排序,因此配合distribute by 就可以对某一个关键字排序

你可能感兴趣的:(Hive数据去重)