【问题标题】:Subqueries in Hive - Getting an error "only subquery expressions that are top level conjuncts are allowed"Hive 中的子查询 - 收到错误“仅允许顶级连接的子查询表达式”
【发布时间】:2015-02-09 08:13:53
【问题描述】:

尝试使用如下子查询在 Hive 中运行此查询:

select y,m,d,h from A
where d not in (select d from B)

我收到一个错误,"only subquery expressions that are top level conjuncts are allowed"

有人知道这意味着什么以及如何解决它吗?

提前致谢!

【问题讨论】:

  • 你用的是什么版本的hive?

标签: apache hadoop hive hql


【解决方案1】:

我假设您使用的是

SELECT A.y, A.m, A.d, A.h
FROM A
LEFT OUTER JOIN B ON A.d = B.d
WHERE B.d IS NULL;

如果你迁移到 hive 0.13,你应该可以这样使用它:

SELECT A.y, A.m, A.d, A.h FROM A WHERE A.d NOT IN (SELECT d FROM B);

【讨论】:

  • 左半连接相当于 in,op 想要“不在”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-06
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多