我在Elastic Map-Reduce上有一組Hive表,它們有一些重複的元素。是否有簡單的方法來刪除這些表格?有沒有簡單的方法來重複數據刪除Hive表?
想到的是傾倒到一組豬消化文件,引發豬並使用DISTINCT查詢重新生成表格。不過,這似乎有點相當的工作,所以我想知道是否有更簡單的方法。
我在Elastic Map-Reduce上有一組Hive表,它們有一些重複的元素。是否有簡單的方法來刪除這些表格?有沒有簡單的方法來重複數據刪除Hive表?
想到的是傾倒到一組豬消化文件,引發豬並使用DISTINCT查詢重新生成表格。不過,這似乎有點相當的工作,所以我想知道是否有更簡單的方法。
一個查詢應刪除重複:
INSERT OVERWRITE TABLE table
SELECT DISTINCT Col1, Col2 , ..., ColN FROM table
這是一個錯誤的答案。 – Dennis 2016-04-01 10:12:42
我同意 - 如果行不完全重複,但它們不同的列需要返回?我相信其他數據庫允許您爲不同的和選擇指定單獨的一組列。 – 2016-10-21 14:57:11
如果你需要重複數據刪除像(客戶,主機,產品,地點),你也可以將其加入自己獨特的列。
很有用,如果你有不同的時間戳或任何其他多個條目。
INSERT OVERWRITE TABLE my_table
select a.* from my_table a
inner join (select min(id) as id from my_table group by unique_column) b on (a.id = b.id);
讓我們假設「元素」是指行。這些重複的行是否重複,或者它們是否與某些列不同?通過刪除表格,你的意思是保留所有的列,而不僅僅是行重複的那些列? – 2016-10-21 14:54:25