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
Welchen Fehler erhalten Sie, wenn Sie mit dem Skript nach un-Kommentar ('maxValPathOnHDFS') Zeilen in Skript und .props-Datei? –
@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) –
@BigDataLearner Wird durch Entfernen der einzelnen Anführungszeichen behoben die Eigenschaftendatei und gerade dabei '$ {hivevar: MAX_VAL_PATH}' Ich fühle mich albern –