我是hive的新手,并试图在我在HDFS文件上创建的2个外部表上执行以下简单的子查询示例。
item_id和k_item_id同时都是bigint。任何人都可以帮我理解确切的错误原因吗?
hive> SELECT item_id FROM hivedev.ext_c_oi_item2 WHERE
item_id NOT IN (SELECT k_item_id FROM hivedev.ext_c_ksn2);
错误:
失败:ParseException行1:71无法识别'SELECT''附近的输入''k_item_id''来自'表达式规范
答案 0 :(得分:1)
Hive不支持IN
子句中的子查询。相反,你可以做一个左外连接,右边的过滤器为null,以实现相同的逻辑:
SELECT ext_c_oi_item2.item_id
FROM hivedev.ext_c_oi_item2
LEFT OUTER JOIN hivedev.ext_c_ksn2
ON ext_c_oi_item2.item_id = ext_c_ksn2.k_item_id
WHERE ext_c_ksn2.k_item_id IS NULL;