2016-06-29 12 views
1

Ich habe eine Hive-Tabelle mit dynamischer Partitionierung für eine Spalte erstellt. Gibt es eine Möglichkeit, die Daten direkt aus Dateien mit der Anweisung "LOAD DATA" zu laden? Oder müssen wir nur darauf angewiesen sein, eine nicht partitionierte Zwischentabelle zu erstellen und Dateidaten darauf zu laden und dann Daten aus dieser Zwischentabelle in eine partitionierte Tabelle einzufügen, wie in Hive loading in partitioned table erwähnt?Laden von Daten in Hive dynamische partitionierte Tabellen

Antwort

0

Nein, der Befehl LOAD DATA kopiert NUR die Dateien in das Zielverzeichnis. Die Datensätze der Eingabedatei werden nicht gelesen, daher kann die Partitionierung basierend auf den Datensatzwerten NICHT durchgeführt werden.

Wenn Ihre Eingabedaten bereits in mehrere Partitionen unterteilt sind, können Sie die Dateien direkt in den Tabellenbereich in HDFS in ihrem von Ihnen manuell erstellten Partitionsverzeichnis kopieren (ODER nur auf ihre aktuelle Position im Fall der EXTERNAL-Tabelle zeigen)) und verwenden Sie den folgenden ALTER-Befehl, um die Partition hinzuzufügen. Auf diese Weise können Sie die LOAD DATA-Anweisung vollständig überspringen.

+0

Im Fall der externen Tabelle, nach dem Platzieren der Dateien im Verzeichnis, können wir den Befehl msck ausführen, um die Partitionen automatisch zu erstellen? –

-1

Keine andere gehen, wenn wir direkt einfügen müssen, müssen wir Partitionen manuell angeben.

Für die dynamische Partitionierung benötigen wir eine Zwischenspeichertabelle und fügen sie von dort ein.

Verwandte Themen