我正在使用类似于 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/