首页 > 解决方案 > Hadoop SQL - Impala 和计算字段

问题描述

我对 Hadoop 非常陌生,并尝试像在 SQL 中一样使用“计算”​​字段:

SELECT "one" as test, 
    CASE WHEN calculated test = "one" then "This works"
    else "Nope" 
    end as checker

但似乎这会产生一个错误:

AnalysisException:第 1 行的语法错误:...est,CASE WHEN 计算测试 =“one”然后“这项工作... ^ 遇到:IDENTIFIER 预期:AND、BETWEEN、DIV、ILIKE、IN、IREGEXP、IS、LIKE、 NOT, OR, REGEXP, RLIKE, THEN CAUSED BY: 异常: 语法错误

Hadoop中不能使用“计算”​​字段吗?如果是这样,我做错了什么?如果我遗漏了一些明显的东西,再次道歉,这是 Hadoop 的新手。

标签: sqlhadoopimpala

解决方案


它不是。 calculated不是 Impala SQL 的保留词。

您可能应该使用iforcase代替。

以下是一些示例,来自文章Impala Conditional Functions: IF, CASE, COALESCE, DECODE, NVL, ZEROIFNULL

select if(1=1,'TRUE','FALSE') as IF_TEST;

...

select case x when 1 then 'one'
 when 2 then 'two' 
 when 0 then 'zero' 
 else 'out of range' 
 end
 from t1;

参考:


推荐阅读