2016-07-26 49 views
0

下面的簡單工作直線查詢;當我把它放在腳本中它會運行,但我想把一個hivevar的路徑,我怎麼做到這一點,因爲當我把我的腳本.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文件中的un-commenting('maxValPathOnHDFS')行發出腳本後,您會得到什麼錯誤? –

+0

@BigDataLearner錯誤:編譯語句時出錯:FAILED:ParseException行1:27在目標規範(狀態= 42000,代碼= 40000)中錯誤輸入'/'期望StringLiteral接近'DIRECTORY' –

+0

@BigDataLearner通過刪除單引號屬性文件,只是做'$ {hivevar:MAX_VAL_PATH}'我覺得愚蠢 –

回答

1

除去從性能單引號文件和周圍hivevar加入查詢: #maxValPathOnHDFS=/user/tmp/maxVal & '${hivevar:PATH_ON_HDFS}'