Hive Query无法按预期工作

时间:2016-09-23 11:01:22

标签: sql hive

我在Hive Query中尝试左连接,但它似乎不起作用。它只返回左表中的列:

 create table mb.spt_new_var as select distinct customer_id ,target   from mb.spt_201603 A
     left outer join mb.temp B
     on (A.customer_id=B.cust_id);

我尝试根据表A中的一些随机customer_id从表B中选择几条记录,然后返回一些记录。但是如果我在表A上尝试左连接,它只返回表A中的列。两个ID的数据类型是相同的(int)。这背后可能的原因是什么?

样本表A:

Customer_account_id target
12356                1
34245                0
12356                1
....                ..

样本表B:

Cust_id   col1 col2 col3
12356     ..   
12567     ..
24426     ..
... 

表A有大约1m的记录,而表B有大约30m的记录。表A和表B中可能存在一些重复的ID。

1 个答案:

答案 0 :(得分:0)

我有点困惑。 Hive返回您在查询中指定的列:

select distinct a.customer_id, a.target 
from mb.spt_201603 a left outer join
     mb.temp b
     on a.customer_id = b.cust_id;

如果您想要第二个表中的列,则需要选择它们:

select distinct a.customer_id, a.target, b.col1, b.col2
from mb.spt_201603 a left outer join
     mb.temp b
     on a.customer_id = b.cust_id;