首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将AVDL文件转换为Apache的avro python包可以解析

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

Stack Overflow用户
提问于 2022-04-21 13:04:49
回答 1查看 542关注 0票数 0

我想要做的是获取一个.avdl文件并将其解析为python。我想利用python内部的信息。

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

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

代码语言:javascript
复制
java -jar avro-tools.jar idl src/test/idl/input/namespaces.avdl /tmp/namespaces.avpr

我通过Avro工具运行了我的.avdl文件,它生成了一个.avpr文件。

不清楚的是我如何使用python包来解释这些数据。我试过一些简单的..。

代码语言:javascript
复制
schema = avro.schema.parse(open("my.avpr", "rb").read())

但这会产生错误:

代码语言:javascript
复制
SchemaParseException: No "type" property:

我相信avro.schema.parse被设计用来解析.avsc文件(?)。但是,尚不清楚如何使用avro-tools将.avdl转换为.avsc。这有可能吗?

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 17:42:48

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

例如:

代码语言:javascript
复制
java -jar avro-tools.jar idl2schemata src/test/idl/input/namespaces.avdl /tmp/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71955005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档