【发布时间】:2017-01-07 02:37:37
【问题描述】:
我有两个 hive 表,只有当两个表中都有数据时,我才想做一个连接。如果其中一张表为空,我不希望发生连接。 我尝试探索案例陈述,目的是我会做类似的事情
select count(*) as val
case
when val > 0 then <do join of table1 and table2 here>
else
<do nothing>
end
from table2
但是看起来 hive 不允许在 case 语句中执行评估,所以这种方法不起作用。任何人都对如何在 hive 中执行此操作有任何意见。
【问题讨论】:
-
你可以试试 Table1 和 Table2 之间的左外连接。
-
没有 SQL 有这个功能。我会将您的逻辑插入脚本中:计算两个表的记录。如果两个计数器>0 加入
-
@rajat 左外连接仍将导致连接操作。我的需要是在不需要时完全消除加入
-
@user2051590 那么我想你需要打破这些步骤并将belostoky建议的逻辑写入脚本并执行它。