将 AVDL 文件转换为 Apache 的 avro python 包可以解析的内容



我想要能够做的是采取。avdl文件并将其解析为python。我想利用python内部的信息。

根据文档,Apache的python包不处理.avdl文件。我需要使用他们的avro-tools将。avdl文件转换成它知道如何解析的东西。

根据https://avro.apache.org/docs/current/idl.html上的文档,我可以使用以下命令将.avdl文件转换为.avpr文件:

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

我用Avro-tools运行我的。avdl文件,它生成了一个。avpr文件。

不清楚的是我如何使用python包来解释这些数据。我尝试了一些简单的方法…

schema = avro.schema.parse(open("my.avpr", "rb").read())

但是会产生错误:

SchemaParseException: No "type" property:

我相信avro.schema.parse是设计来解析.avsc文件(?)。然而,目前还不清楚我如何使用avro-tools将我的。avdl转换为。avsc。这可能吗?

我猜我遗漏了很多部分,而且我还不太明白所有这些文件的目的是什么。

看起来。avpr是一个JSON文件(?),所以我可以自己读取和解释它,但我希望有一个python包可以帮助我导航数据。

有人能对此提供一些见解吗?谢谢你。

答案是在avro-tools.jar中使用idl2schemata命令,为它提供一个输出目录,它可以将.avsc文件写入该目录。.avsc文件可以读取AVRO python包。

例如:

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

相关内容

  • 没有找到相关文章

最新更新