join - HiveQL 不等式连接

标签 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 是否已确认此类查询将产生错误结果?

为任何帮助干杯, 马特

最佳答案

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

关于join - HiveQL 不等式连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11932563/

相关文章:

MYSQL 获取最新购买的用户

php - Mysql 2 select all 语句无法正常工作

hadoop - 如何将 Hive 分区列和值插入数据( Parquet )文件?

hadoop - Hive NR 映射进度不一致并定期从 0% 重新启动

配置单元中的 Json 文件加载跳过第 1 行

sql - 使用描述创建 Hive 表

apache-spark - 写入配置单元分区时,Spark 暂存目录竞争条件?

mySQL join 引用父代码

mysql - PHP MySQL 多次更新

mysql - 在 MySQL 中快速插入和搜索大号的最佳解决方案。行数?