Impala子查询返回奇怪的结果

时间:2019-06-18 16:59:41

标签: hive impala

我正在运行以下impala查询,但得到的结果却很奇怪。为什么下面的第二个查询返回零结果,以及如何解决这个问题。我正在使用多个表执行多个数据管道,因此我必须在开始时使用“ with”。

1. Query: select * from test where name <> 'INSERT'
+----+--------+
| id | name   |
+----+--------+
| 2  | DELETE |
| 2  | HELLO  |
+----+--------+
Fetched 2 row(s) in 0.13s


2. Query: with temp as (select * from test where name <> 'INSERT') select * from temp
Modified 0 row(s) in 0.23s


3. Query: with temp as (select * from test where name <> 'HELLO') select * from temp
+----+--------+
| id | name   |
+----+--------+
| 2  | DELETE |
| 1  | INSERT |
+----+--------+
Fetched 2 row(s) in 0.12s


It should give the record names with 'HELLO' and 'DELETE' for the 2nd query. but its giving no results. Also noticed the output says "modified", so i am guessing its trying to execute it as DML.

Note : Using Impala Shell v2.11.0-cdh5.14.2

The same query works fine in hive.

1 个答案:

答案 0 :(得分:0)

这似乎对我有帮助

with temp as (SELECT *
FROM
  (SELECT 'DELETE' AS name
   UNION SELECT 'HELLO' AS name
   UNION SELECT 'INSERT' AS name) AS subq
WHERE name <> 'INSERT')
select * from temp;
+---------+
|  name   |
+---------+
| HELLO   |
| DELETE  |
+---------+
2 rows selected (0.118 seconds)

您可以发布第二个查询的EXPLAIN PLAN吗?