Join HiveQL不等式连接

Join HiveQL不等式连接,join,hadoop,hive,inequality,Join,Hadoop,Hive,Inequality,我知道Hadoop的Hive不支持不平等连接。然而,我得到了一个运行正常的查询。至于结果是否正确,我很怀疑,因为我有一位同事与我分享了这篇文章,他发现这篇文章没有产生正确的结果 这是: 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

我知道Hadoop的Hive不支持不平等连接。然而,我得到了一个运行正常的查询。至于结果是否正确,我很怀疑,因为我有一位同事与我分享了这篇文章,他发现这篇文章没有产生正确的结果

这是:

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是否确认这种类型的查询将产生错误的结果

为任何帮助干杯,
马特

据我所知,您的查询确实是equejoin:foo.id=bar.id
条件:(bar.f2 in(x,y,z))=FALSE仅应用于bar表,不应视为联接的一部分

配置单元中没有对表字段设置非相等条件的限制。

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


太好了,谢谢Navis。顺便说一句,我使用的是Hive版本0.7.1和Hadoop版本0.20.2(CDH3)。谢谢David,是的,我明白你的意思,因为这句话只适用于bar。。。我猜如果表达式是foo.id