2016-07-26 7 views
0

以下の簡単な作業ビーイングクエリ。スクリプトを実行すると、実行されますが、パスのハイヴァーバーを入れたいのですが、スクリプトを入れたときにどうすればいいのですか?.propertiesファイル= 'パス'は機能していないようです。私はこれらの単一引用符で何かを逃していると思うので、私はそれを動作させるように見えることができません。bashスクリプトのビーラインクエリ

maxValQuery.hql

WORKING: INSERT OVERWRITE DIRECTORY '/user/tmp/maxVal' select max(${hivevar:MAX_VAL_COL}) from ${hivevar:FACT_TABLE}; 
WANTED: INSERT OVERWRITE DIRECTORY ${hivevar:PATH_ON_HDFS} select max(${hivevar:MAX_VAL_COL}) from ${hivevar:FACT_TABLE}; 

script.sh

#! /bin/bash 
# I want to add --hivevar PATH_ON_HDFS=${maxValPathOnHDFS} 
    beeline \ 
     -u $hiveServer2 \ 
     --hivevar DATABASE_NAME_ON_HIVE=${dbNameOnHive} \ 
     --hivevar FACT_TABLE=${mainFactTableOnHive} \ 
     --hivevar MAX_VAL_COL=${factTableIncrementalColumn} \ 
     -f ${maxValQueryFile} 

script.properties

dbNameOnHive=poc 
mainFactTableOnHive=factTable 
factTableIncrementalColumn=aTimeColumn 
maxValQueryFile=maxValQuery.hql 
#maxValPathOnHDFS='/user/tmp/maxVal' 
#I believe problem is above with the single quotes, yes I uncomment when i execute :P 
+0

スクリプトと.propsファイルのコメント行( 'maxValPathOnHDFS')行のコメントを外した後にスクリプトを使用すると、どのようなエラーが発生しますか? –

+0

@BigDataLearnerエラー:コンパイルステートメント中にエラーが発生しました:FAILED:ParseException行1:27不一致の入力 '/'宛先指定(状態= 42000、コード= 40000)の 'DIRECTORY'の近くにStringLiteralがあります –

+0

@BigDataLearner一重引用符を削除プロパティファイルと '$ {hivevar:MAX_VAL_PATH}'を実行するだけです。 –

答えて

1
性質から

削除単一引用符がクエリでファイルとhivevarの周りにコメントを追加しました: #maxValPathOnHDFS=/user/tmp/maxVal & '${hivevar:PATH_ON_HDFS}'