2016-07-28 11 views
2

Ich versuche, den Partitionsspeicherort meiner externen Hive-Tabelle zu ändern.Kann Partitionsspeicherort in der Struktur nicht ändern

Befehl, den ich versuche laufen:

ALTER TALBE sl_uploads PARTITION (hivetimestamp='2016-07-26 15:00:00') SET LOCATION '/data/dev/event/uploads/hivetimestamp=2016-07-26 15:00:00' 

Fehler erhalte ich:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.net.URISyntaxException: Illegal character in path 

Meine Daten für eine bestimmte Partition vorhanden auf dem Weg:

/data/dev/event/uploads/hivetimestamp=date time/actual_data 

Ich denke, Raum erstellt ein Problem. Aber jede Hilfe wäre großartig.

+0

versuchen, den Raum zu entkommen mit \: SET LOCATION '/ data/dev/event/uploads/hivetimestamp = 2016.07.26 \ 15.00.00' –

+0

Nein, das nicht funktioniert. Es gibt immer noch den gleichen Fehler. Ich hatte das schon mal probiert, um den Raumcharakter zu überspringen. – Austin

Antwort

0

Ihre hdfs im Pfad ist richtig?

add/aktuelle_daten /?

0

Hive kann den vollständigen hdfs-Pfad aufgrund von Leerzeichen in "2016-07-26 15:00:00" nicht lesen; können Sie folgende Befehle verwenden;

hive> set part=2016-07-26 15:00:00; 
hive>ALTER TALBE sl_uploads PARTITION (hivetimestamp='2016-07-26 15:00:00') SET LOCATION '/data/dev/event/uploads/[email protected]'; 
+0

Es setzt das Teil und ändert den Speicherort der Partition, aber wenn ich die Auswahl zählen (*) von sl_uploads, wo Hivetimestamp = '2016-07-26 15:00:00' funktioniert es nicht. Es gibt den Fehler: FEHLER: SemanticException java.io.FileNotFoundException: Datei hdfs: // data/dev/event/uploads/hivemestamp = @ Teil existiert nicht. – Austin