Hive数据去重语句
insert overwrite table ad_click_info
select t.ad_id,t.ad_date from
( select ad_id,
ad_date ,
row_number() over(distribute by ad_id sort by ad_date desc) as row
from ad_click_info) t where t.row=1;
说明:
1. ad_id 为去重所依据的key, ad_date 表示多个 ad_id 的排列顺序,这个关键字将决定哪个 ad_id 将留下
2. t.row=1表示重复的数据只保留第一行,本例中将保留最新日期的 ad_id
3. distribute by 关键字指定分发的key,同一个key将分发到同一个reducer
4. sort by 是单机范围内排序,因此配合distribute by 就可以对某一个关键字全局排序