So öffnen Sie .AVRO-Dateien unter Linux
Um .AVRO-Dateien unter Linux zu öffnen, verwenden Sie Apache Spark und lesen Sie die Datei mithilfe der Avro-Datenquelle (Spark unterstützt Avro als Format).
Schritt-für-Schritt-Anleitung
- Verwenden Sie Apache Spark und lesen Sie die Datei mithilfe der Avro-Datenquelle (Spark unterstützt Avro als Format).
- Für eine einfache lokale Option verwenden Sie DuckDB mit der Avro-Erweiterung und fragen Sie die Datei über den Avro-Reader von DuckDB ab.
- Definieren Sie in Hadoop/Hive-Umgebungen Avro-gestützte Tabellen mit AvroSerDe / AvroContainerInputFormat von Hive, um mit .avro-Containerdateien zu arbeiten.
Häufige Probleme
Die Datei lässt sich nicht in einer Tabellenkalkulation oder einem „normalen“ Viewer öffnen
Avro ist ein binäres Serialisierungs-/Containerformat, das für das programmgesteuerte Lesen entwickelt wurde, nicht für die manuelle Prüfung wie CSV/JSON.
- Öffnen Sie es mit einem Tool, das Avro versteht (z. B. die Avro-Datenquelle von Apache Spark oder DuckDB mit der Avro-Erweiterung).
- Wenn Sie ein für Menschen lesbares Formular benötigen, laden Sie es in Spark oder DuckDB und exportieren/fragen Sie es dann in ein besser sichtbares Format ab (z. B. um Abfrageergebnisse anzuzeigen).
Schema- oder Feldkonflikt beim Lesen
Avro verlässt sich auf Schemata; Wenn ein Leser andere Felder/Typen erwartet als das, was das eingebettete Schema der Datei bereitstellt, können Sie fehlende Felder, Typfehler oder unerwartete Nullen sehen.
- Bestätigen Sie, dass es sich bei der Datei um eine Avro-Objektcontainerdatei handelt (sie sollte ihr Schema gemäß der Avro-Spezifikation in den Header einbetten).
- Lesen Sie in Ihrem Tool (Spark/Hive/DuckDB) zuerst das in der Datei gespeicherte Schema. Wenden Sie ein externes/erwartetes Schema erst an, nachdem Sie die Kompatibilität überprüft haben.
Aufgrund fehlender Unterstützung kann Spark Avro nicht lesen/schreiben
In Spark erfolgt die Avro-Unterstützung über die Avro-Datenquelle. Wenn in Ihrer Umgebung die erforderliche Komponente/Konfiguration fehlt, können Lesevorgänge fehlschlagen.
- Stellen Sie sicher, dass Sie die Avro-Datenquelle von Spark wie dokumentiert verwenden (format="avro" / org.apache.spark.sql.avro).
- Überprüfen Sie, ob Ihre Spark-Distribution/-Umgebung Avro-Unterstützung enthält, wie im Spark Avro-Datenquellenhandbuch beschrieben.
DuckDB kann die Datei nicht lesen, da die Avro-Erweiterung nicht aktiviert ist
DuckDB liest Avro über seine Avro-Erweiterung; Wenn es nicht installiert/geladen ist, sind die Avro-Funktionen nicht verfügbar.
- Installieren und laden Sie die Avro-Erweiterung von DuckDB, wie in der Dokumentation zur Avro-Erweiterung von DuckDB beschrieben.
- Verwenden Sie den Avro-Reader von DuckDB (z. B. den dokumentierten read_avro-Ansatz), um die .avro-Datei abzufragen.
Sicherheitshinweis
Avro-Dateien sind typischerweise binäre Containerdateien; Behandeln Sie .avro aus nicht vertrauenswürdigen Quellen als potenziell riskant für Parser-Schwachstellen in der Software, die sie liest (Spark/Hive/DuckDB oder eine beliebige Avro-Bibliothek).