我在 Elastic Map-Reduce 上有一组 Hive 表,其中有一些重复的元素。有没有一种简单的方法可以对这些表进行重复数据删除?
想到的是转储到一组猪可消化文件,启动猪并使用 DISTINCT 查询重新生成表。不过,这似乎是一项相当多的工作,所以我想知道是否有更简单的方法。
我在 Elastic Map-Reduce 上有一组 Hive 表,其中有一些重复的元素。有没有一种简单的方法可以对这些表进行重复数据删除?
想到的是转储到一组猪可消化文件,启动猪并使用 DISTINCT 查询重新生成表。不过,这似乎是一项相当多的工作,所以我想知道是否有更简单的方法。
一个查询应该删除重复项:
INSERT OVERWRITE TABLE table
SELECT DISTINCT Col1, Col2 , ..., ColN FROM table
如果您需要对(客户、主机、产品、位置)等唯一列进行重复数据删除,您也可以将其加入到自身中。
如果您获得具有不同时间戳或其他任何内容的多个条目,则很有用。
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 );