【问题标题】: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"
有人知道这意味着什么以及如何解决它吗?
提前致谢!
【问题讨论】:
标签:
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);