2016-07-26 9 views
0

einfache Arbeit Beeline Abfrage unten; Wenn ich das Skript einfüge, wird es ausgeführt, aber ich möchte einen Hivevar für den Pfad einfügen. Wie beende ich das, wenn ich mein Skript einlege .properties file the = 'path' scheint nicht zu funktionieren. Ich vermisse etwas mit diesen einfachen Anführungszeichen, denke ich, und ich kann es einfach nicht funktionieren lassen.Beeline Abfrage in Bash-Skript

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

Welchen Fehler erhalten Sie, wenn Sie mit dem Skript nach un-Kommentar ('maxValPathOnHDFS') Zeilen in Skript und .props-Datei? –

+0

@BigDataLearner Fehler: Fehler beim Kompilieren der Anweisung: FAILED: ParseException Zeile 1:27 nicht übereinstimmende Eingabe '/' erwartet StringLiteral in der Nähe von 'DIRECTORY' in Zielspezifikation (state = 42000, code = 40000) –

+0

@BigDataLearner Wird durch Entfernen der einzelnen Anführungszeichen behoben die Eigenschaftendatei und gerade dabei '$ {hivevar: MAX_VAL_PATH}' Ich fühle mich albern –

Antwort

1

entfernt Apostrophe von Eigenschaftsdatei und um hivevar in Abfrage hinzugefügt: #maxValPathOnHDFS=/user/tmp/maxVal