我在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。
答案 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;