我知道Hive for Hadoop不支持不等式连接。但是,我有一个似乎运行良好的查询。至于结果是否正确,我很怀疑,因为我有一位同事,我发现它没有产生正确的结果。
这是:
select foo.id, count(foo.*) as foo_vol, count(bar.*) as bar_vol
from foo
left outer outer join bar
on foo.id = bar.id
and (bar.f2 in (x, y, z)) = FALSE
group by foo.id
任何人都有任何想法为什么这解释并运行正常?不平等加入的问题实际上与标准是否使用连接两边的字段有关吗?让FB / apache确认这种类型的查询会产生错误的结果吗?
为任何帮助干杯, 马特
答案 0 :(得分:1)
根据我的理解你的查询确实是eque join:foo.id = bar.id
条件:((x,y,z)中的bar.f2)= FALSE仅应用于条形表,不应视为连接的一部分。
在hive中没有限制在表字段上放置不相等的条件。
答案 1 :(得分:0)
配置单元中的外连接结果有时是错误的。我正在努力。