如何EXCEPT
在 Hive QL 中执行子句(如 SQL)
我有 2 个表,每个表都是唯一 ID 列。
我想查找仅在表 1 中但不在表 2 中的 id 列表
表格1
apple
orange
pear
表 2
apple
orange
在 SQL 中,您可以执行 EXCEPT 子句 ( http://en.wikipedia.org/wiki/Set_operations_%28SQL%29 ),但在 Hive QL 中不能执行此操作
如何EXCEPT
在 Hive QL 中执行子句(如 SQL)
我有 2 个表,每个表都是唯一 ID 列。
我想查找仅在表 1 中但不在表 2 中的 id 列表
表格1
apple
orange
pear
表 2
apple
orange
在 SQL 中,您可以执行 EXCEPT 子句 ( http://en.wikipedia.org/wiki/Set_operations_%28SQL%29 ),但在 Hive QL 中不能执行此操作
我不认为有任何内置的方法可以做到这一点,但LEFT OUTER JOIN
应该做的伎俩。
这会从中选择所有table1
不存在的ID table2
:
SELECT t1.id FROM table1 t1 LEFT OUTER JOIN table2 t2 ON (t1.id=t2.id) WHERE t2.id IS NULL;
我们可以在 Hive 中使用NOT EXISTS子句作为MINUS等价物。
SELECT t1.id FROM t1 WHERE NOT EXISTS (SELECT 1 from t2 WHERE t2.id = t1.id);