簡體   English   中英

如何在Oozie協調器的shell變量中為返回結果編寫Hive腳本?

[英]How to write hive script for return result in shell variable in an Oozie coordinator?

然后我在Oozie中協調我的script.sh,變量S中什么也沒有。這是shell腳本

S=$(hive -S -hiveconf MY_VAR1=$DB -hiveconf MY_VAR2=$avgpay -hiveconf MY_VAR3=$Date_LastDay -hiveconf MY_VAR4=$Date_LastNmonth -f bpxp.hql)

echo $S "S"


S1=( $( for k in $S ; do echo $k ; done ) )
    cntn=${#S1[@]}
    for (( p=0 ; p<$cntn; p=p+5 ))
 do
     `mysql -h$mysqlhost -u$mysqluser -p$mysqlpass $mysqldb -e "INSERT INTO weekstat (timeshift, partnerid, avg_value, processdate, weekday) VALUES ('${S1[p]}', '${S1[p+1]}', '${S1[p+2]}', '${S1[p+3]}', '${S1[p+4]}');"`
done

Mysql命令與另一個變量一起正常工作這是bpxp.hql

...

    hive -e "select * from ${hiveconf:MY_VAR1}.weekstat;"

然后我從外殼運行腳本,它工作正常。 我嘗試在不帶這一行的情況下使用bpxp.hql hive -e "select * from ${hiveconf:MY_VAR1}.weekstat;" 並將其寫入shell S = hive -e "select * from $DB.weekstat;" 但沒有改變。 我的錯誤在哪里?

無論您做什么,都是一種有效的方法,但是要進行如下所述的微小更改:

S=$(hive -S -hiveconf MY_VAR1=$DB -hiveconf MY_VAR2=$avgpay -hiveconf MY_VAR3=$Date_LastDay -hiveconf MY_VAR4=$Date_LastNmonth -f bpxp.hql)

在bpxp.hql中保留查詢

select * from $DB.weekstat;

您無需在hql腳本中提及hive -e,上面的命令將自動執行並提供輸出,並存儲到S中。

如果我錯了,請讓我糾正。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM