在链接https://cwiki.apache.org/Hive/languagemanual-udf.html中,明确提到A && B
与A AND B
相同。但是,当我尝试在我的一个hive查询中使用&&
时,它无效(我使用的是hive-0.9.0-cdh4.1.2)。
示例输入:
12 23
2 6
表格架构为test(a int, b int)
。当我执行SELECT CASE WHEN (a<10 && b<10) THEN a+b END FROM test;
时,我收到一条异常消息,说“FAILED:ParseException line 1:24无法识别'&amp;'附近的输入'b''&lt;'在表达式规范“。
预期产出:
NULL
8
但是当我用&&
替换AND
时,它给出了正确的结果。我想知道为什么会这样。任何帮助非常感谢!提前谢谢。
答案 0 :(得分:0)
我之前遇到过这个问题,并试图做一些由于其他事情而仍未完成的研究。但我发现这是一些解析相关的问题。确切地说,ANTLR无法提供合适的解析器来解析此查询。
您可以尝试使用最新版本的Hive,它具有ANTLR的升级版本。但我仍然不确定即使这样也会奏效。坦率地说,我想知道&amp;&amp; 和 || 是否有效。