Возможно, лучший способ - использовать оконные функции. Если в строках не может быть повторяющихся пар число / фрукты:
select number, fruit
from (select t.*, count(*) over (partition by number) as cnt
from t
) t
where cnt >= 2;
Если вы можете иметь дубликаты и хотите 2 или более разных фруктов, вы можете сделать:
select number, fruit
from (select t.*,
min(fruit) over (partition by number) as min_fruit,
max(fruit) over (partition by number) as max_fruit
from t
) t
where min_fruit <> max_fruit;
И, наконец, для этой ситуации вы можете эффективно сформулировать это в SQL для большинства баз данных как:
select t.*
from t
where exists (select 1 from t t2 where t2.number = t.number and t2.fruit <> t.fruit);
Однако я не думаю, что коррелированный подзапрос был бы эффективен в Hive (если это даже разрешено в вашей версии).