hive - '&&' 在 Hive 中不起作用

标签 hive hiveql

在链接中https://cwiki.apache.org/Hive/languagemanual-udf.html , 明确提到 A && BA 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/

相关文章:

mysql - 每组最大时间戳

hadoop - 如何将配置单元查询文件输出限制为始终在单个文件中

sql - 配置单元 : FAILED: SemanticException Column Found in more than One Tables/Subqueries

java - 无法查看通过 Spark SQL 创建的新数据

hadoop - 有没有办法在将数据从 HIVE 移动到 ES 时跳过 ES 中的行插入?

sql - 我如何从 Hiveql 中的 select over 语句中仅提取最近一周?

hadoop - 如何重命名配置单元中的所有分区列

hive - 当我们创建没有位置属性的 Hive 外部表时,数据将存储在哪里

hadoop - 从Beeline连接时,Hive查询在Tez上失败,但在Map-Reduce上成功

hadoop - Hive/Beeline,如何设置作业.staging目录?