Ich habe eine ziemlich kräftige Parkett-Datei, wo ich Werte für eine der Spalte ändern muss. Eine Möglichkeit wäre, diese Werte in den Quelltextdateien zu aktualisieren und die Parkettdatei neu zu erstellen, aber ich frage mich, ob es eine kostengünstigere und insgesamt einfachere Lösung dafür gibt.Aktualisieren von Werten in Apache-Parkett-Datei
Antwort
Fangen wir mit den Wurzeln
- Parkett, wenn ein Start-Dateiformat, sondern muss in einem Dateisystem gespeichert werden.
- Unterstützt Parquet-Unterstützung. ?
- Ermöglicht das FileSystem (HDFS) Anhängen an die Datei.
- Selbst wenn alle wahr sind macht den Job Rahmen (Funken) in der Lage ist
Antworten zu handhaben anhängen:
Parkett: parquet.hadoop.ParquetFileWriter unterstützt nur CREATE und ERSETZEN aber keine append Modus. (Nicht sicher, aber in anderen Implementierung ändern können, Parkett Design nicht anhängt Unterstützung)
HDFS hdfs können auf Dateien anhängen mit (dfs.support.append Eigenschaft)
Spark-Framework unterstützt nicht anhängen an bestehende Parkett-Dateien.
Bitte gehen Sie durch
http://bytepadding.com/big-data/spark/read-write-parquet-files-using-spark/
http://bytepadding.com/linux/understanding-basics-of-filesystem/
für ein detailliertes Verständnis.
Danke für die detaillierte Antwort und Hintergrundinformationen. das ist hilfreich – Keith
Sie müssen die Datei neu erstellen, das ist die Hadoop-Methode. Vor allem, wenn die Datei komprimiert ist.
Ein anderer Ansatz (sehr häufig in Big-data) besteht darin, das Update auf einer anderen Parquet (oder ORC) -Datei durchzuführen und dann JOIN/UNION zur Abfragezeit.
- 1. Aktualisieren von Werten mit einem anderen Datenrahmen
- 2. Aktualisieren von Werten durch Auffinden übereinstimmender Schlüsselwerte
- 3. Aktualisieren von Werten mit ng-init
- 4. Aktualisieren/Einfügen von Werten über Ajax
- 5. Swift - Aktualisieren von Werten eines multidimensionalen NSMutableDictionary
- 6. Gespeicherte Prozedur zum dynamischen Aktualisieren von Werten in db2-Tabelle
- 7. Vergleichen und Aktualisieren von Array-Werten in Python
- 8. Aktualisieren einer Tabelle von Werten in einer Excel-Datei
- 9. Aktualisieren von Werten in NSArray, das UITableView unterstützt
- 10. aktualisieren Tabelle zufällig von mehreren Werten in anderen Tabelle mit
- 11. Suchen und Aktualisieren von hexadezimalen Werten in Python
- 12. So aktualisieren Sie eine Gruppe von Datensätzen mit inkrementellen Werten
- 13. Aktualisieren Sie ein @ModelAttribute mit vorhandenen Werten
- 14. Ziel C: Aktualisieren von Werten für Schlüssel für ein NSMutableDictionary?
- 15. Aktualisieren Sie viele Dokumente in MongoDB mit verschiedenen Werten
- 16. Update SQL-Tabelle von Werten in Excel
- 17. Aktualisieren von Werten in der Karte auf der Grundlage anderer Karte in Java
- 18. Tabellen mit nicht eindeutigen Werten aktualisieren und querabfragen?
- 19. Automatische Aktualisierung von Werten in SQL Server
- 20. SQL: Aktualisieren eine Spalte mit mehreren Werten mit einzelner Abfrage
- 21. Importieren von Werten in Python
- 22. Laufzeitauswertung von Werten in DelphiWebScript
- 23. Ändern von Werten in HashSet
- 24. Skalieren von Werten in PHP
- 25. Einfügen von Werten in Datatables
- 26. Aktualisieren Sie Datenbankwerte mit denselben PHP-Werten mit Doctrine-Typ
- 27. Generieren von zufälligen Werten in Swift zwischen zwei ganzzahligen Werten
- 28. Einstellen von Javascript-Werten aus Werten in mySQL-Datenbank
- 29. Android Sqlite - mehrere Zeilen mit mehreren Werten aktualisieren
- 30. CRM Dynamics 2013 SDK Aktuelle Konten mit 2 Werten aktualisieren
Nein. Sie müssen die Datei neu erstellen. –
@DanOsipov Danke. Ich nehme an, dass diese Einschränkung auf verschiedene Komprimierungsalgorithmen zurückzuführen ist, bei denen es nicht einfach oder sogar möglich wäre, Spaltenwerte zu aktualisieren. –
Ich würde sagen, das ist eine viel fundamentalere Frage, und nicht eine Parkett-spezifische Frage. In der Welt der hohen Datenmengen, wo Parkett oft verwendet wird, ist Unveränderlichkeit etwas, um das Sie sich kümmern möchten. Aus dieser Perspektive möchten Sie die Daten laden, transformieren und dann erneut schreiben. Sie sollten nur die Spalten schreiben, die Sie benötigen, was es effizienter macht, da es sich um ein spaltenweises Format handelt. –