我想从Hive表之一中找到重复的行,为此给了我两种方法。
第一种方法是使用以下两个查询:
select count(*) from mytable; // this will give total row count
Run Code Online (Sandbox Code Playgroud)
第二个查询如下所示,它将给出不同行的计数
select count(distinct primary_key1, primary_key2) from mytable;
Run Code Online (Sandbox Code Playgroud)
使用这种方法,对于我的一个表,使用第一个查询得出的总行数是3500,第二个查询给出的行数是2700。因此,它告诉我们3500 - 2700 = 700行是重复的。但是此查询不会告诉您哪些行是重复的。
查找重复项的第二种方法是:
select primary_key1, primary_key2, count(*)
from mytable
group by primary_key1, primary_key2
having count(*) > 1;
Run Code Online (Sandbox Code Playgroud)
上面的查询应列出重复的行以及特定行被重复多少次的列表。但是此查询显示的行为零,这意味着该表中没有重复的行。
所以我想知道:
小智 8
由于PI中允许使用null和重复项,因此您应该执行以下操作:
select [every column], count(*)
from mytable
group by [every column]
having count(*) > 1;
Run Code Online (Sandbox Code Playgroud)
这样,您将获得重复行的列表。