Hive 配置单元-选择多个不带联接的表

Hive 配置单元-选择多个不带联接的表,hive,Hive,我的表格只有一列“tgt_dt”和10条记录:日期“2015-09-01”、日期“2015-02-01”、日期“2015-08-10”等 我需要用这些日期作为条件,从另一张表中进行选择。i、 e,在sql中,我只需执行以下操作: select T2.tgt_dt, A,B, C,sum(D) from TableA T1, TableB T2 where T1.date between T2.tgt_dt - 90 and T2.tgt_dt group by T2.tgt_dt,

我的表格只有一列“tgt_dt”和10条记录:日期“2015-09-01”、日期“2015-02-01”、日期“2015-08-10”等

我需要用这些日期作为条件,从另一张表中进行选择。i、 e,在sql中,我只需执行以下操作:

select T2.tgt_dt, A,B, C,sum(D) 
from TableA T1,
     TableB T2
where T1.date between T2.tgt_dt - 90 and T2.tgt_dt
group by T2.tgt_dt, A,B, C

在hive中执行此操作的最佳方法是什么?

您可以在此处执行笛卡尔连接:

select T2.tgt_dt, A,B, C,sum(D) 
from 
     TableA T1
JOIN
     TableB T2
where T1.date between T2.tgt_dt - 90 and T2.tgt_dt
group by T2.tgt_dt, A,B, C
如果您想要更有效的方法,您可以采取以下措施:

select b.tgt_dt, A,B, C,sum(D) 
from 
     TableA T1
LATERAL VIEW explode(array('date1','date2','date3')) b as tgt_dt
where T1.date between b.tgt_dt - 90 and b.tgt_dt
group by b.tgt_dt, A,B, C

你的第一个答案实际上和我的问题一样,蜂巢不支持不平等连接,我相信它不是不平等连接,它是笛卡尔连接,蜂巢应该支持哪个。你是对的,我的错误,蜂巢在后来的版本中添加了“中间”,我忘了这一点。