我正在使用类似于Airflow的数据管道,并希望每日任务检查新分区是否已落入表中,然后创建一个删除了所有重复记录的新表。
数据集非常大,所以我很难想到一个有效的HiveQL查询来重复数据删除。简单地在所有列上使用组肯定太贵了。
答案 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
快多少,但值得一试。