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

数据集非常大,因此我很难考虑使用高效的HiveQL查询进行重复数据删除。仅在所有列上使用group by肯定太昂贵了。

最佳答案

您可以尝试使用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快多少,但是值得一试。

关于sql - 重复数据删除Hive表的有效方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37800422/

10-16 02:02
查看更多