Ich erstelle externe Tabellen in Bienenstock und dann Benutzer insert overwrite directory ...
, um die Dateien hinzuzufügen. Beim zweiten Mal, wenn ich meine Abfrage ausführe, erwarte ich, dass die alten Dateien gelöscht werden und neue Dateien sie ersetzen (weil ich die Option zum Überschreiben habe). Dies ist jedoch nicht der Fall, und neue Dateien werden dem Verzeichnis hinzugefügt, ohne die alten Dateien zu entfernen, was zu Inkonsistenzen in den Daten führt. Was läuft hier falsch?Einfügen überschreiben im Bienenstock funktioniert nicht richtig
Antwort
Ich wollte einen Fehler einreichen, aber dieses Problem ist vorhanden: HIVE-13997 - Wenden Sie den Patch an, wenn Sie overwrite directory
für erwartete Ergebnisse verwenden möchten.
Aus-Test, was ich gefunden habe, ist:
overwrite directory
und overwrite table
funktioniert anders: Sie sollten overwrite table
verwenden, wenn Sie das gesamte Verzeichnis überschrieben werden soll.
diese Tabelle für Test erstellt: create external table t2 (a1 int,a2 string) LOCATION '/user/cloudera/t2';
overwrite directory:
Das Verzeichnis ist, wie man erwarten würde, überschrieben; Mit anderen Worten, wenn der angegebene Pfad existiert, wird er geplottet und durch die Ausgabe ersetzt.
hive> insert overwrite directory '/user/cloudera/t2' select * from sqoop_import.departments;
also, wenn obige Aussage wird Daten an der Stelle schreiben /user/cloudera/t2/000000_0
dann nur diese Position überschrieben.
#~~~~ BEFORE ~~~~
[[email protected] ~]$ hadoop fs -ls /user/cloudera/t2/*
-rwxr-xr-x 1 cloudera cloudera 60 2016-07-25 17:42 /user/cloudera/t2/000000_0
-rwxr-xr-x 1 cloudera cloudera 0 2016-07-25 15:48 /user/cloudera/t2/_SUCCESS
-rwxr-xr-x 1 cloudera cloudera 88 2016-07-25 15:48 /user/cloudera/t2/part-m-00000
-rwxr-xr-x 1 cloudera cloudera 60 2016-07-25 15:48 /user/cloudera/t2/part-m-00001
#~~~~ AFTER: Note the timestamp ~~~~
[[email protected] ~]$ hadoop fs -ls /user/cloudera/t2/*
-rwxr-xr-x 1 cloudera cloudera 60 2016-07-25 18:01 /user/cloudera/t2/000000_0
-rwxr-xr-x 1 cloudera cloudera 0 2016-07-25 15:48 /user/cloudera/t2/_SUCCESS
-rwxr-xr-x 1 cloudera cloudera 88 2016-07-25 15:48 /user/cloudera/t2/part-m-00000
-rwxr-xr-x 1 cloudera cloudera 60 2016-07-25 15:48 /user/cloudera/t2/part-m-00001
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
overwrite table:
der Inhalt der ausgewählten Tabelle oder Partition werden durch die Ausgabe der entsprechenden Select-Anweisung ersetzt.
hive> insert overwrite table t2 select * from sqoop_import.departments;
Jetzt wird gesamt dir überschreibt:
[[email protected] ~]$ hadoop fs -ls /user/cloudera/t2/*
-rwxr-xr-x 1 cloudera cloudera 60 2016-07-25 18:03 /user/cloudera/t2/000000_0
-rwxr-xr-x 1 cloudera cloudera 0 2016-07-25 15:48 /user/cloudera/t2/_SUCCESS
so abschließend überschreibt Verzeichnis nur direkten Pfad der erzeugten Datei überschreibt nicht das Verzeichnis. see Writing-data-into-the-file-system-from-queries
- 1. PHP Einfügen funktioniert nicht richtig
- 2. Datenbankabfrage einfügen funktioniert nicht richtig
- 3. Kommentare funktionieren nicht im Bienenstock CLI
- 4. BST Einfügen funktioniert nicht richtig in Python
- 5. TIMESTAMP im Bienenstock?
- 6. Schwein überschreiben Daten in Bienenstock mit LOAD
- 7. Einfügen (nicht überschreiben) in C
- 8. ManyToMany realtion im Ruhezustand funktioniert nicht richtig
- 9. RotateX im CSS-Würfel funktioniert nicht richtig
- 10. Betreff Analyse Befehl im Bienenstock
- 11. Dateien richtig überschreiben
- 12. Einfügen von Strings in verkettete Liste funktioniert nicht richtig
- 13. Fehler beim Überschreiben von Parkett Bienenstock Tabelle in pyspark
- 14. NSCache() funktioniert nicht richtig
- 15. Split funktioniert nicht richtig
- 16. UImage funktioniert nicht richtig?
- 17. NSTimer funktioniert nicht richtig
- 18. Zeitzone funktioniert nicht richtig
- 19. OnPointerEnter() funktioniert nicht richtig
- 20. Homestead funktioniert nicht richtig
- 21. Kontextmenü funktioniert nicht richtig
- 22. Sortiermakro funktioniert nicht richtig
- 23. AngularJS $ Kompilieren funktioniert nicht richtig
- 24. cURL funktioniert nicht richtig!
- 25. htacess nicht richtig funktioniert
- 26. Faye funktioniert nicht richtig
- 27. Berechnungen Funktioniert nicht richtig
- 28. MKDIR funktioniert nicht richtig?
- 29. Statusbarcolor funktioniert nicht richtig
- 30. Basenname funktioniert nicht richtig
ist Ihre Hive-Tabelle partitioniert? –
nein es ist nicht partitioniert, es ist eine einfache Tabelle –