Daten von einer Hive-Tabelle in eine andere mit Partition laden

8

Ich habe Daten in einer Hive-Tabelle und möchte Daten in eine andere Hive-Tabelle laden.

Die Quellentabelle ist reg_logs mit 2 Partitionen, Datum und Stunde. Die Daten werden stündlich in diese Tabelle geladen. Das Schema ist:

%Vor%

Die Zieltabelle ist reg_logs_org Ich möchte nur alle Daten aus reg_logs neben der Spalte utc_hour kopieren.

Das Schema, das ich erstellt habe, ist: (Bitte korrigieren, wenn ich falsch liege)

%Vor%

Fügen Sie Daten in reg_logs_org von reg_logs:

ein %Vor%

Fehlermeldung:

%Vor%

==

%Vor%     
Rio 13.06.2014, 18:05
quelle

4 Antworten

16

Dies liegt daran, dass Ihnen die Partitionsinformationen in Ihrer Einfügeabfrage fehlen

%Vor%     
dpsdce 16.06.2014, 07:39
quelle
8

Erstellen Sie eine Kopie Ihrer Tabelle

%Vor%

Aktiviere dynamische Partitionierung

%Vor%

Kopieren Sie die Tabelle

%Vor%

Die where-Klausel wird benötigt, wenn Sie den strikten Modus verwenden.

    
akuhn 18.11.2016 02:27
quelle
3

In einigen Fällen benötigen Sie möglicherweise um hive.exec.dynamic.partition.mode = nicht-strikt zu setzen um Daten in partitionierte Tabellen einfügen zu können, zum Beispiel

%Vor%

dann funktioniert dieser INSERT:

%Vor%     
Tagar 22.10.2016 22:04
quelle
0

Beim Einfügen der Daten ist es zwingend erforderlich, die partitionierte Spalte als letzte Spalte zu verwenden. Hive nimmt die Daten, die in der letzten Spalte stehen.

Auf der Grundlage dieser Einfügeabfrage sollte also sein: -

%Vor%     
Arpan 10.12.2017 00:53
quelle

Tags und Links