首页 > 解决方案 > Hive SQL Select 不适用于多个 AND 条件,显示错误:运算符“AND”接受至少 2 个参数

问题描述

我正在尝试运行一个非常简单的查询,该查询仅根据一些多个条件选择所有行,并且全部包含在内,即我在 select HiveQL 语句中使用 AND。该表是 Hive 中的外部表,存储处理程序是 phoenix,所以我在 phoenix 中也检查了该查询,它工作正常,但在 Hive 中,它显示了一些我无法获取的 java IO 异常错误在哪里我错了。我正在使用的查询是:

SELECT * FROM msme_api.msme_jk WHERE gender='Male' AND socialcategory='General';

完整的错误信息是:

Error: java.io.IOException: org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException: The operator 'AND' accepts at least 2 argument. (state=,code=0)

我正在尝试外部和内部 Hive 表,在两者中,问题仍然相同,但是当我通过 OR 语句下订单时,它的工作原理令人惊讶。

SELECT * FROM msme_api.msme_jk WHERE gender='Male' AND socialcategory='General' order by aid;
SELECT * FROM msme_api.msme_jk WHERE gender='Male' OR socialcategory='General';

两者都可以正常工作,但是使用 AND,我得到了错误。

我仍然对 hive 如何获取和处理上述查询以及为什么我无法执行简单的 select 语句感到困惑。任何帮助将不胜感激。

标签: hivehiveql

解决方案


推荐阅读