hive -hiveconf 參數帶空格被截斷的解決方法

與shell傳參一樣,當參數值裏面有空格時,需要用雙引號括起來,不然的話,會被當作兩個參數截斷。

問題描述:

Hive的腳本中需要給變量賦值,最常見的就是日期+時間

select a,b,c
from table
where bizdate=${hiveconf:bizdate}

執行的命令如果是hive -hiveconf bizdate="2020-05-15 15:00:00" -f xxx.hql

這樣傳入進去的參數值是2020-05-15 而不是想象中的 2020-05-15 15:00:00

解決這個問題,換個思路:既然在給shell的腳本傳入參數時,可以利用雙引號解決value中存在空格的情況,那麼我們這裏也用這個套路來嘗試下。

正確的傳參姿勢:

hive -hiveconf "bizdate='2020-05-15 15:00:00'" -f xxx.hql

下面就來個實際的操作

test.hql:

select "${hiveconf:bizhourtime}"

調用命令:

hive -hiveconf "bizhourtime=`date -d '1 day ago' '+%Y-%m-%d %H:00:00'`" -f test.hql
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章