Wie Schema für avro-Datei in Python zu extrahieren

8

Ich versuche die Python Avro-Bibliothek ( Ссылка ) zu verwenden, um eine von JAVA generierte AVRO-Datei zu lesen. Da das Schema bereits in die avro-Datei eingebettet ist, muss ich eine Schemadatei angeben. Gibt es eine Möglichkeit, es automatisch zu extrahieren?

Ein anderes Paket namens fastavro ( Ссылка ) kann ein avro-Schema extrahieren. Ist das Handbuch, das die Schemadatei im Python-arvo-Paket spezifiziert, vom Entwurf abhängig? Vielen Dank.

    
ljxue 29.07.2014, 00:06
quelle

3 Antworten

6

Eine direkte Untersuchung von /usr/local/lib/python2.7/site-packages/avro/datafile.py enthüllt die Antwort:

%Vor%

Seltsamerweise gibt es in Java eine spezielle Methode dafür: reader.getSchema() .

    
sds 05.11.2014 17:50
quelle
4

Ich benutze Python 3.4 und Avro Paket 1.7.7

Für die Verwendung von Schemadateien:

%Vor%     
Alon Hazan 15.07.2015 09:45
quelle
1

In meinem Fall habe ich Folgendes getan, um das Schema als "konsumierbares" Python-Wörterbuch zu erhalten, das nützliche Informationen wie einen Schemanamen usw. enthält:

%Vor%

Das reader.meta ist ein Wörterbuch, das ziemlich nutzlos ist, da es 2 Schlüssel enthält: avro.codec und avro.schema , die beide bytes Objekte sind (also musste ich es analysieren, um auf Eigenschaften zuzugreifen ).

    
daveoncode 12.07.2017 10:30
quelle

Tags und Links