无法从脚本中解析$ proc_date

时间:2018-05-09 15:22:02

标签: shell hive hql-hive

我有多个HQL' s,下面是一个例子。

位于: / home / ganesh / CopyJobs / hql /

insert into XYZ.exttbl_form_data PARTITION (load_date="$proc_date") select FORM_DATA_ID,FORM_ID,USER_ID,INTERACTIONS_ID,SUBMISSION_DATETIME,FILEDS from PQR.exttbl_form_data where load_date="$proc_date" 

在主要脚本中我正在阅读上面提到的HQL

export proc_date=2018-05-07

while read line
do
export hql=`cat /home/ganesh/CopyJobs/hql/$table_name.hql`

export hql_final=$(`eval echo"$hql"`)
echo "Final HQL: $hql_final"
hive -e "$hql_final;"

done < /home/ganesh/CopyJobs/config/tables.txt 

其中tables.txt中包含所有HQL的列表。

我想要解决$ proc_date但是没有发生。

1 个答案:

答案 0 :(得分:0)

使用Hive变量替换(hiveconf变量)。我已经修复了您的脚本。

  1. HQL文件应如下所示: lblCount.Text = string.Format("Total Directories: {0} Total Files: {1}", TotalDirectories, TotalFiles); lblCount.Update();

insert into XYZ.exttbl_form_data PARTITION (load_date='${hiveconf:proc_date}') select FORM_DATA_ID,FORM_ID,USER_ID,INTERACTIONS_ID,SUBMISSION_DATETIME,FILEDS from PQR.exttbl_form_data where load_date='${hiveconf:proc_date}' -是要传递给Hive的变量。

主要脚本:

${hiveconf:proc_date}