Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop SQL-Impala和一个计算字段_Sql_Hadoop_Impala - Fatal编程技术网

Hadoop SQL-Impala和一个计算字段

Hadoop SQL-Impala和一个计算字段,sql,hadoop,impala,Sql,Hadoop,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 计算测试=“一”然后“此工作…^遇到:标识符 预期:AND,BETWEEN,DIV,ILIKE

我对Hadoop非常陌生,并尝试使用SQL中的“计算”字段:

SELECT "one" as test, 
    CASE WHEN calculated test = "one" then "This works"
    else "Nope" 
    end as checker
但这似乎产生了一个错误:

AnalysisException:第1行中的语法错误:…est,CASE WHEN 计算测试=“一”然后“此工作…^遇到:标识符 预期:AND,BETWEEN,DIV,ILIKE,IN,IREGEXP,IS,LIKE,NOT,OR, REGEXP,RLIKE,然后由以下原因引起:异常:语法错误


在Hadoop中不能使用“计算”字段吗?如果可以,我做错了什么?如果我遗漏了Hadoop中新出现的明显内容,请道歉。

不是。
computed
不是Impala SQL的保留词

您可能应该改用
if
case

以下是文章中的一些示例:

参考文献:


    • 不是。
      计算的
      不是Impala SQL的保留字

      您可能应该改用
      if
      case

      以下是文章中的一些示例:

      参考文献:


      以下查询可能按照您在hive/impala中希望的方式工作

      select 
          case when test="one" then "this works"
          else "nope" end as checker 
          from 
          (select "one" as test) a;
      

      下面的查询可能按照您在hive/impala中希望的方式工作

      select 
          case when test="one" then "this works"
          else "nope" end as checker 
          from 
          (select "one" as test) a;
      

      使用单引号而不是双引号。我很感激,但不幸的是,这没有效果。请注意,我试图使用一个计算字段,单词“computed”“是什么导致了问题,否则它运行正常<代码>计算是我从SAS proc sql环境中了解到的。我不记得在任何其他数据库中见过它。使用单引号而不是双引号。我很感激,但不幸的是,这没有效果。请注意,我试图使用一个计算字段,单词“计算”是导致问题的原因,否则它运行正常<代码>计算是我从SAS proc sql环境中了解到的。我不记得在任何其他数据库中看到过它。谢谢,但重点是创建值,然后在同一语句中引用它。选择“一”作为测试,如果(测试=“一”,“真”,“假”)作为检查器。。。但是在这种情况下找不到变量“test”,我对此表示怀疑。Impala只支持SQL的一个子集,主要用于配置单元的兼容性,因为这是主要的用例。看看这可能会有帮助。谢谢,我的问题更多的是基于我对SQL的理解,而不是Hadoop。在本周对它进行了更多的探索之后,嵌套select语句对于我尝试做的事情非常有效。谢谢,但关键是创建值,然后在同一语句中引用它。选择“一”作为测试,如果(测试=“一”,“真”,“假”)作为检查器。。。但是在这种情况下找不到变量“test”,我对此表示怀疑。Impala只支持SQL的一个子集,主要用于配置单元的兼容性,因为这是主要的用例。看看这可能会有帮助。谢谢,我的问题更多的是基于我对SQL的理解,而不是Hadoop。在本周进行了更多的探索之后,嵌套select语句对于我所尝试的工作非常有效。很高兴报告这一点,它完全符合我的期望。我只能达到一个层次,但将代码一分为二是一个很大的帮助。很高兴报告这正是我所希望的。我只能使用它达到一个级别,但是将代码减半是一个很大的帮助。
      select 
          case when test="one" then "this works"
          else "nope" end as checker 
          from 
          (select "one" as test) a;