我将查询与hiveconf一起使用以加载如下所示的动态值。

PRD_CODE->动态值(例如A,A或B,A或C或A或B或C,A或C)

因此,我形成如下语法:
情况A或B或C:
(PRD_CODE = 'A' OR PRD_CODE = 'B' OR PRD_CODE = 'C'),在我的Java代码中,并将其作为hiveconf传递,如下所示。

hive -hivconf prd_codes=(PRD_CODE = 'A' OR PRD_CODE = 'B' OR PRD_CODE = 'C') --hiveconf db_name=mytestdb -f myqueries.hql;


但是,这似乎给出了错误的结果。 --hiveconf可以处理带空格的值吗?如果没有,该如何处理?

最佳答案

在查询中写

...
where PRD_CODE IN ${hiveconf:prd_codes)
...


然后从配置单元CLI

hive --hiveconf "prd_codes=('A', 'B', 'C')" --hiveconf db_name=mytestdb -f myqueries.hql

07-24 09:49