Hive資料去重

2021-07-06 03:42:19 字數 528 閱讀 5957

hive資料去重

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 列表去重 Hive 資料去重

實現資料去重有兩種方式 distinct 和 group by 1.distinct消除重複行 distinct支援單列 多列的去重方式。單列去重的方式簡明易懂,即相同值只保留1個。多列的去重則是根據指定的去重的列資訊來進行,即只有所有指定的列資訊都相同,才會被認為是重複的資訊。1 作用於單列 se...

hive 去重 字串 hive 函式

substr string a,int start,int len substring string a,intstart,int len 用法一樣,三個引數 返回值 string 說明 返回字串a從start位置開始,長度為len的字串,下標預設為1.若沒有長度預設到結尾。round round ...

hive 列表去重 HIVE的多表查詢

先來看看union all語句的使用 union all語句將倆個表中相同的字段拼接在一起進行表的查詢,注意的是union all不去重,資料會重複,我們來看看網路上的一些案例 準備表create external table if not exists temp uniontest ta a1 s...