shell - 无法从脚本解析 $proc_date
问题描述
我有多个 HQL,下面是一个示例。
位于:/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 但是没有发生。
解决方案
使用 Hive 变量替换(hiveconf 变量)。我已经稍微修正了你的脚本。
- HQL 文件应如下所示:
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}'
${hiveconf:proc_date}
- 是要传递给 Hive 的变量。
主脚本:
proc_date=2018-05-07
echo "proc_date is $proc_date"
while read line
do
hql_file=/home/ganesh/CopyJobs/hql/"$line".hql
echo "current hql_file is $hql_file"
hive -hiveconf proc_date="$proc_date" -f "$hql_file"
done < /home/ganesh/CopyJobs/config/tables.txt
推荐阅读
- batch-file - Batch Logging New Line
- javascript - How to validate custom user information on Firebase Authentication?
- data-annotations - 我们可以在 asp.net core 3.1 中覆盖数据注释响应的任何方式
- express - Axios post request not returning response error
- node.js - nodejs napi 如何手动创建 CallbackInfo 类型的数据
- c - Output is in Chinese? Output problems
- google-chrome-extension - Host html pages in chrome extension
- javascript - 如何使用类名在同一个 td 元素中找到复选框元素
- sql - 如何查看客户是否提出保修索赔和产品销售?
- laravel - 水平导出 Laravel Excel 数据