1. 程式人生 > >hive表格取差集

hive表格取差集

pre value 知識點 outer 表格 code 取數 rom 錯誤代碼

hive 求兩個集合的差集

業務場景是這樣的,這裏由兩個hive表格A和B

A的形式大概是這樣的:uid
B的形式大概是這樣的:uid

我想要得到存在A中但是不存在B中的uid

具體代碼如下

select a.uid from 
(select uid from tmp_zidali_500wan_fullinfo_new)a
left outer join
(select uid from temp_zidali_uid_num_maxvalue_rate)b
on a.uid=b.uid
where b.uid is null

在這裏我要穿插一個非常重要的知識點,在A和Bjoin(不管是哪種join),在對結果表格取數據的時候,我們不能對結果表格進行一個()c這樣的操作。

錯誤代碼如下

select a.uid from (
(select uid from tmp_zidali_500wan_fullinfo_new)a
left outer join
(select uid from temp_zidali_uid_num_maxvalue_rate)b
on a.uid=b.uid
where b.uid is null
)c #這是錯誤的,不能這麽做,為了這個錯誤,搞了三個小時去找這個錯誤代碼

hive表格取差集