Hi Eric,

You did everything right, except that you ended up with a protocol file.

Please use the tool idl2schemata instead, to generate schema file(s):

java -jar avro-tools.jar idl2schemata src/test/idl/input/namespaces.avdl
/tmp/

This will create a .avsc file per schema that you can use.

Kind regards,
Oscar

-- 
Oscar Westra van Holthe - Kind <os...@westravanholthe.nl>

Op vr 22 apr. 2022 14:27 schreef Eric Gorr <eric.g...@twosixtech.com>:

> What I would like to be able to do is take an .avdl file and parse it into
> python. I would like to make use of the information from within python.
>
> According to the documentation, Apache's python package does not handle
> .avdl files. I need to use their `avro-tools` to convert the .avdl file
> into something it does know how to parse.
>
> According to the documentation at
> https://avro.apache.org/docs/current/idl.html, I can convert a .avdl file
> into a .avpr file with the following command:
>
> > java -jar avro-tools.jar idl src/test/idl/input/namespaces.avdl
> /tmp/namespaces.avpr
>
> I ran through my .avdl file through Avro-tools, and it produced an .avpr
> file.
>
> What is unclear is how I can use the python package to interpret this
> data. I tried something simple...
>
> > schema = avro.schema.parse(open("my.avpr", "rb").read())
>
> but that generates the error:
>
> > SchemaParseException: No "type" property:
>
> I believe that `avro.schema.parse` is designed to parse .avsc files (?).
> However, it is unclear how I can use `avro-tools` to convert my .avdl into
> .avsc. Is that possible?
>
> I am guessing there are many pieces I am missing and do not quite
> understand (yet) what the purpose of all of these files are.
>
> It does appear that an .avpr is a JSON file (?) so I can just read and
> interpret it myself, but I was hoping that there would be a python package
> that would assist me in navigating the data.
>
> Can anyone provide some insights into this? Thank you.
>

Reply via email to