##Hive数据去重

Hive数据去重 - 菠萝大数据梦工厂(Free World) - 博客频道 - CSDN.NET http://blog.csdn.net/jiangshouzhuang/article/details/49401469

insert overwrite table ta_customers
select t.ta_id,t.ta_date from
( select ta_id,
ta_date ,
row_number() over(distribute by ta_id sort by ta_date desc) as rn
from ta_customers) t
where t.rn=1;

说明:

  1. ta_id 为去重所依据的key, ta_date 表示多个 ta_id 的排列顺序,这个关键字将决定哪个 ta_id 将留下
  2. t.rn=1表示重复的数据只保留第一个,本例中将保留最新日期的的 ta_id
  3. distribute by 关键字指定分发的key,同一个key将分发到同一个reducer
  4. sort by 是单机范围内排序,因此配合distribute by 就可以对某一个关键字全局排序

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