Erstellen einer partitionierten hive-Tabelle, die von einer nicht partitionierten Tabelle
Habe ich eine Hive-Tabelle, die erstellt wurde durch den Beitritt von Daten aus mehreren Tabellen. Die Daten für diese befindet sich in einem Ordner, die mehrere Dateien ("0001_1" , "0001_2", ... und so weiter). Ich muss eine partitionierte Tabelle erstellt, basierend auf einem Datum-Feld in dieser Tabelle genannt pt_dt
(entweder durch Veränderung dieser Tabelle oder einen neuen zu erstellen). Gibt es eine Möglichkeit, dies zu tun?
Habe ich versucht, eine neue Tabelle erstellen und einfügen in es (unten), die nicht arbeiten
create external table table2 (acct_id bigint, eval_dt string)
partitioned by (pt_dt string);
insert into table2
partition (pt_dt)
select acct_id, eval_dt, pt_dt
from jmx948_variable_summary;
Löst dies den Fehler
"FEHLGESCHLAGEN: Execution Error, return code 2 aus org.apache.hadoop.hive.ql.exec.Herr.MapRedTask
MapReduce-Aufträge Gestartet:
Bühne-Bühne-1: Karte: 189 Kumulative CPU: 401.68 sec HDFS Gelesen: 0 HDFS Schreiben: 0 FAIL
Insgesamt MapReduce CPU-Zeit Verbracht: 6 Minuten 41 Sekunden 680 msec"
Du musst angemeldet sein, um einen Kommentar abzugeben.
War in der Lage, um es herauszufinden, nach einigem trial & error.
Ermöglichen die dynamische Partitionierung in Hive:
Create schema für die partitionierte Tabelle:
Insert into partitionierte Tabelle :
In der version arbeite ich mit folgenden arbeiten (Hive 0.14.0.2.2.4.2-2)
Aus der Quell-Tabelle wählen Sie die Spalte, die partitioniert werden muss durch die Letzte, im obigen Beispiel, das Datum ist so gewählt, dass das Letzte Spalte Auswählen. Ebenso, wenn die Anforderungen der Tabelle zu partitionieren, indem Sie in der Spalte "info", dann
Wenn Sie möchten, um die Tabelle zu erstellen mit mehreren Partitionen der select-Abfrage muss ich das bestellen. Wenn Sie möchten, um die partition der obigen Tabelle mit "Datum" und dann "info"
Mit "info", dann "Datum"