当前位置: 首页 > 知识库问答 >
问题:

如何从包含二进制格式avro消息的文件中读取/解析JSON模式?

井浩思
2023-03-14

我在一个文件中有一个二进制格式的avro消息

obj^a^d^vavro.schema∞^b{“type”:“record”,“name”:“rec”,“namespace”:“ns”,“fields”:[{“name”:“id”,“type”:[“int”,“null”]},{“name”:“name”,“type”:[“string”,“null”]},{“name”:“foo_id”,“type”:[“int”,“null”]}]}^tavro.codec^lsnappy^@·²/nüb|<9b> =_^n u^w

我只是对模式感兴趣。有没有一种方法可以从这个文件中读取/解析模式?我目前正在手工解析这个文件以提取模式,但我希望avro能帮助我找到一种标准的方法。

共有1个答案

满子实
2023-03-14

Avro提供了一个从文件获取模式的API:

    File file = new File("myFile.avro")

    FileReader<?> reader = DataFileReader.openReader(file, new GenericDatumReader<>());
    Schema schema = reader.getSchema();
    System.out.println(schema);

我认为它应该符合您定义的“只是模式”,如果不符合,请告诉我。

如果没有理由以编程方式执行,您还可以从avro-tools使用getschema命令。

 类似资料:
  • 问题内容: 呼吁专家,专家和其他人来帮助阅读和解析python文件。 在第六版的第751页。或第7版第800页。Superbible OpenGL的附录B。SBM文件格式似乎在某种程度上很好地解释了该格式。 我试图在python中实现此文件格式的阅读器。 好的,已经取得了进展。我已经将Rabbid76惊人的代码合并到提供的源代码中。尽管我正在尝试取得更多进展。 更新2019年6月23日-重大进展,

  • 我将JSON文件&JSON模式解析为AVRO模式。我有点困惑,我是否必须使用AVRO文档中定义的数据类型来编写手动AVRO模式。 或者是否有任何自动化的方法/函数/程序可以完全按照要求工作?

  • 我正在尝试使用Apache Avro数据源指南中描述的< code>spark-avro包。 当我提交以下命令时: 我收到一个错误: 我已经尝试了不同版本的包(2.4.0、2.4.1和2.4.2),我目前使用Spark 2.4.1,但都不工作。 我使用以下命令启动spark shell:

  • 问题内容: 我正在尝试从URLConnection读取二进制文件。当我使用文本文件对其进行测试时,它似乎可以正常工作,但对于二进制文件则不能。发送文件时,我在服务器上使用以下mime类型: 但是到目前为止,似乎没有任何效果。这是我用来接收文件的代码: 问题答案: 我就是这样

  • 我尝试向kafka发布/使用我的java对象。我使用Avro模式。 我的基本程序运行良好。在我的程序中,我在生产者(用于编码)和消费者(用于解码)中使用我的模式。 如果我在接收者处将不同的对象发布到不同的主题(例如:100个主题),我不知道我收到了什么类型的消息?...我想从接收到的字节中获取avro模式,并想将其用于解码...我的理解正确吗?如果是这样,我如何从接收到的对象中检索?

  • 问题内容: 我对Go完全陌生,我试图读取一个二进制文件,一次读取一个字节或几个字节。该文档并没有多大帮助,我找不到任何教程或简单示例(顺便说一句,Google如何给他们的语言提供这样一个难以理解的名称?)。基本上,如何打开文件,然后将一些字节读入缓冲区?有什么建议吗? 问题答案: 要处理文件,该软件包是您的朋友: 在过去的文件是如何打开更多的控制,看到代替(DOC) 。 为了读取文件,有很多方法。