重复数据删除Hive表的有效方法?

时间:2016-06-13 22:57:04

标签: sql hadoop hive hdfs hiveql

我正在使用类似于Airflow的数据管道,并希望每日任务检查新分区是否已落入表中,然后创建一个删除了所有重复记录的新表。

数据集非常大,所以我很难想到一个有效的HiveQL查询来重复数据删除。简单地在所有列上使用组肯定太贵了。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用row_number()

select t.*
from (select col1, col2, col3, . . .,
             row_number() over (partition by col1, col2, . . . 
                                order by col1) as seqnum
      from t
     ) t
where seqnum = 1;

我不确定这会比group by快多少,但值得一试。