Daten nicht immer geladen in die Partitionierte Tabelle in Hive
Ich versuche zu erstellen partition für meine Tabelle durchzuführen, um einen Wert zu aktualisieren.
Dies ist meine sample-Daten
1,Anne,Admin,50000,A
2,Gokul,Admin,50000,B
3,Janet,Sales,60000,A
Ich aktualisieren möchten Janet's
Abteilung B.
So für zu tun, dass ich eine Tabelle erstellt mit der Abteilung partition.
create external table " - trail (EmployeeID Int,FirstName
String Bezeichnung, String,Int Gehalt) PARTITIONIERT (Abteilung
String) row format delimited fields terminated by "," location
'/user/sreeveni/HIVE';
Aber dabei die oben genannten Befehl.
Es werden keine Daten eingefügt-trail-Tabelle.
hive>select * from trail;
OK
Time taken: 0.193 seconds
hive>desc trail;
OK
employeeid int None
firstname string None
designation string None
salary int None
department string None
# Partition Information
# col_name data_type comment
department string None
Mache ich etwas falsch?
UPDATE
Wie vorgeschlagen versuchte ich zum einfügen von Daten in meine Tabelle
load data inpath '/user/aibladmin/HIVE' overwrite into table trail
Partition(Abteilung);
Aber es zeigt
FEHLGESCHLAGEN: SemanticException [Fehler 10096]: Dynamische partition strict-Modus
erfordert mindestens einen statischen partition-Spalte. Um diese zu deaktivieren setzen
hive.exec.dynamisch ist.partition.Modus=nichtstrikten
Nach Einstellung set hive.exec.dynamic.partition.mode=nonstrict
auch nicht funktionieren.
Nichts anderes zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, die unten angegebenen Eigenschaften
Und beim schreiben der insert-Anweisung für eine partitionierte Tabelle, stellen Sie sicher, dass Sie geben Sie die partition an Spalten auf der letzten in der select-Klausel.
insert into select
auf eine partition-Tabelle. Die Daten werden nur 13k Datensätzen. Nach der Verwendung der oben genannten Einstellung die Abfrage ausgeführt wird. aber ich bekomme den Speicher laufen unser Problem. Frage mich, für eine ziemlich kleine Daten sollte es nicht der Arbeitsspeicher.Nicht direkt einfügen Daten(Hdfs-Datei) in eine Partitionierte hive-Tabelle.
Zuerst müssen Sie erstellen Sie eine normale Tabelle, dann fügen Sie die Tabelle Daten in die partitionierte Tabelle.
set hive.exec.dynamic.partition.mode=strict
bedeutet, Wann immer Sie bevölkern hive-Tabelle muss mindestens eine statische partition Spalte.set hive.exec.dynamic.partition.mode=nonstrict
In diesem Modus brauchen Sie keine statische partition Spalte.Versuchen Sie Folgendes:
Erstellen Sie zuerst die Tabelle:
Erstellen Sie ein Verzeichnis, in hdfs mit partition-name :
Erstellen einer lokalen Datei
abc.txt
kann durch filtern der Datensätze haben Abteilung gleich 50000:Steckte es in HDFS:
Nun ändern Sie die Tabelle:
Und überprüfen Sie das Ergebnis: