提供参数以执行配置单元批处理的好方法

xienkqul  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(328)

我正在尝试使用一些参数以批处理模式执行配置单元文件(.hql),如下所示:

hive -hiveconf in_co_societe = 1 in_dt_jour = '2013-01-02 00:00:00.0' -f /home/hduser/Documents/P_THM_CA_RGRP_PRODUITS_JOUR.hql

在我的剧本里,我有这样的论点

'${hiveconf:in_co_societe}'                                 
'${hiveconf:in_dt_jour}'

我的脚本正在插入…选择。。。从。
当我给出参数时,目标表中没有导入任何内容。
但是,当我直接在脚本中写入值时,一切正常,数据被导入。
那么,我的论点怎么了?
谢谢,

mrphzbgm

mrphzbgm1#

“=”周围没有空格,每个变量都需要-hiveconf

hive -hiveconf in_co_societe=1 -hiveconf in_dt_jour='2013-01-02 00:00:00.0' 
  -f /home/hduser/Documents/P_THM_CA_RGRP_PRODUITS_JOUR.hql
nzk0hqpo

nzk0hqpo2#

为了使这个过程更通用,hive允许您使用-hiveconf选项传入变量

hive -hiveconf MY_VAR1=value1 -hiveconf MY_VAR2=value2 -f my_script.hql

在hql文件中,它的用法如下:

show databases;
show tables;
set dfs.block.size=${hiveconf:MY_ VAR1};
select * from ${hiveconf:MY_ VAR2}  limit 2;

you can put them within a .sh file and it can be execute as:   

 sh my_script.sh
z9smfwbn

z9smfwbn3#

查询= sudo -u #$sudo_user# -i bsub -I /opt/ibm/biginsights/hive/bin/hive -hiveconf Loop_Param='#StartLoop_Activity_312.$Counter#' -f /opt/site1/data/EDW/Finance/Scripts/hqlFiles/VNDR_ITEM_F/OP_UNION.sql ;回音$查询
一些对我有用的语法示例

相关问题