2017-12-29 17 views
0

Ich habe eine partitionierte ORC-Tabelle in Hive. Nach dem Laden der Tabelle mit allen möglichen Partitionen bekomme ich HDFS - mehrere ORC-Dateien, d. H. Jedes Partitionsverzeichnis auf HDFS enthält eine ORC-Datei. Ich muss all diese ORC-Dateien unter jeder Partition zu einer einzigen großen ORC-Datei für einige Anwendungsfälle kombinieren.Wie mehrere ORC-Dateien (die zu jeder Partition gehören) in einer Partitionierten Hive-ORC-Tabelle zu einer einzigen großen ORC-Datei kombiniert werden

Kann mir jemand eine Möglichkeit vorschlagen, diese mehreren ORC-Dateien (die zu jeder Partition gehören) in einer einzigen großen ORC-Datei zusammenzufassen.

Ich habe versucht, eine neue nicht partitionierte ORC-Tabelle aus der Partitioned Tabelle zu erstellen. Es reduziert die Anzahl der Dateien, aber nicht auf eine einzige Datei.

PS: Eine Tabelle aus einer anderen zu erstellen, ist eine Map-Aufgabe und daher wird die Anzahl der Reduzierungen mit der Eigenschaft 'set mapred.reduce.tasks = 1;' hilft nicht.

Dank

Antwort

0

können Sie den CONCATENATE Befehl verwenden, um die kleinen Ork-Dateien zu kombinieren. Dies kann auch als Partitionsebene am Tisch erfolgen: Die Syntax gemäß der orc Dokumentation:

Benutzer können eine effiziente Zusammenführung von kleinen ORC anfordern Dateien zusammen mit auf ihrem Tisch oder Partition einen CONCATENATE Befehl ausgeben. Die Dateien werden auf der Stripe-Ebene ohne Reserialisierung zusammengeführt.

ALTER TABLE istari [PARTITION partition_spec] CONCATENATE; 
Verwandte Themen