【发布时间】:2019-06-18 16:59:41
【问题描述】:
我正在运行下面的 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.
【问题讨论】:
-
如果您尝试在第二个查询中执行
explain ...怎么办?是不是和3rd很像? -
计划-ROOT SINK | | | | | 01:EXCHANGE [未分区] | | | | | 00:扫描 HDFS [hello.temp] | |分区=1/1 文件=3 大小=26B | |谓词:name != 'HELLO'
-
是的,除了最后一部分,它看起来完全一样。