Не удалось разрешить $ proc_date из скрипта - PullRequest
0 голосов
/ 09 мая 2018

У меня несколько 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, однако этого не происходит.

1 Ответ

0 голосов
/ 01 августа 2018

Использовать подстановку переменных Hive (переменные hiveconf). Я немного исправил твой сценарий.

  1. Файл 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} - переменная для передачи в Улей.

Основной скрипт:

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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...