我想要做的是获取一个.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工具运行了我的.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包来帮助我导航数据。
有人能对此提供一些见解吗?谢谢。
发布于 2022-04-25 17:42:48
答案是在avro-tools.jar中使用idl2schemata命令,为它提供一个输出目录,它可以将.avsc文件写入其中。然后可以读取.avsc文件包。
例如:
java -jar avro-tools.jar idl2schemata src/test/idl/input/namespaces.avdl /tmp/https://stackoverflow.com/questions/71955005
复制相似问题