2017-12-11 12 views
1

以下のシェルスクリプトを記述しました。 これは機能しません。通過パラメータがシェルで動作していない

パラメータYRMTH_1が認識されません。

FAILED:ParseException行1:89述語 'as'を認識できませんでした。 失敗しましたルール: '識別子' テーブルまたは列の識別子では

YRMTH=$(hive -e "select cast(concat(substr(cast(add_months(current_date, -1) as string),1,4),substr(cast(add_months(current_date, -1) as string),6,2)) as int);") 

echo $YRMTH 

YRMTH_1=$YRMTH 

hive -e "SELECT cust_name as cust_name_${hiveconf:YRMTH_1} from xmb_db.customer where ym=CAST(${hiveconf:YRMTH_1} as INT);" | sed 's/[\t]/,/g' >/tmp/data.csv 

私を助けてください。

ありがとうございます。

答えて

0

-e "script"を使用している場合、シェルはすべての$変数を置き換えます。

ので、解決策はhiveconfせずに直接シェル変数を使用することです:すべてのエラーを投げ、あなたのassistance.Notため

hive -e "SELECT cust_name from xmb_db.customer where ym=CAST('$YRMTH_1' as INT);"

+0

おかげで多くのことを。しかし、データを取得しても、データはテーブルに存在しません。また列名のために働いていません。私を助けてください。 – Rock

+0

'CAST( '$ {hiveconf:YRMTH_1}'をINTとして選択してください);'が返されます。 – leftjoin

+0

こんにちは、それはNULLを与えています。 – Rock

関連する問題