首页 > 解决方案 > 在 HIVE 查询中传递参数

问题描述

我需要在执行时将参数传递给 HQL。为此,我们使用所需的值更新了 .param 文件。现在我在使用它时遇到了问题。

SELECT * FROM temp_table A

其中 PRODT_CTGRY_CD = 'CAR' 和

(

(

DATE(A.CUST_BRTH_DT) 在 concat(${hiveconf:PRODYEAR} - 13 ,"-02","-28") 和 concat(${hiveconf:PRODYEAR} - 7 ,"-03","-01") 之间

DATE(A.TERM_DT) >= concat(${hiveconf:PRODYEAR} - 1,"-03","-31")

)

在上面的查询中,如果我不包括 term_dt 的条件,则查询运行良好。但是,当我包括在内时,我收到如下错误:

失败:ClassCastException org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableIntObjectInspector 无法转换为 org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector(状态=42000,代码=40000)

有人可以让我知道这里需要做什么吗?

提前非常感谢。

标签: hiveql

解决方案


推荐阅读