我将查询与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