在链接中https://cwiki.apache.org/Hive/languagemanual-udf.html , 明确提到 A && B
与 A AND B
相同.但是当我尝试使用 &&
在我的一个配置单元查询中,它不起作用(我使用的是 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;
,我收到一条异常消息说“失败:ParseException 行 1:24 无法识别表达式规范中 '&' 'b' '<' 附近的输入”。
预期输出:
NULL
8
但是当我替换 &&
时与 AND
, 它给出了正确的结果。我想知道为什么会这样。非常感谢任何帮助!提前致谢。
最佳答案
我前段时间遇到过这个问题,并尝试做一些研究,但由于其他原因仍未完成。但我发现这是一些与解析相关的问题。准确地说,ANTLR 无法提供合适的解析器来解析这个查询。
您可能会尝试使用具有升级版 ANTLR 的最新版本的 Hive。但我仍然不确定它是否会起作用。坦率地说,我想知道 && 和 || 是否曾经工作过。
关于hive - '&&' 在 Hive 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18915727/