HiveQL不等式加入

时间:2012-08-13 10:32:33

标签: join hadoop hive inequality

我知道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确认这种类型的查询会产生错误的结果吗?

为任何帮助干杯, 马特

2 个答案:

答案 0 :(得分:1)

根据我的理解你的查询确实是eque join:foo.id = bar.id
条件:((x,y,z)中的bar.f2)= FALSE仅应用于条形表,不应视为连接的一部分。
在hive中没有限制在表字段上放置不相等的条件。

答案 1 :(得分:0)

配置单元中的外连接结果有时是错误的。我正在努力。

https://issues.apache.org/jira/browse/HIVE-3381