在某些情况下,Microsoft Azure决定以avro格式转储数据。从我的角度来看,有问题的数据只是json记录。因此,我只想将我的json数据从avro文件中退回。
我正在研究如何“反序列化” avro数据,以及此处的示例:
https://avro.apache.org/docs/1.8.1/gettingstartedjava.html
提出索赔:
Data in Avro is always stored with its corresponding schema, meaning we can always read a serialized item regardless of whether we know the schema ahead of time.
不幸的是,这些示例确实需要提前了解架构:
DatumReader<GenericRecord> datumReader = new GenericDatumReader<GenericRecord>(schema);
DataFileReader<GenericRecord> dataFileReader = new DataFileReader<GenericRecord>(file, datumReader);
我必须丢失一些东西,我只是想要我的数据(文本/ json)格式,而不是avro。有什么办法可以在不了解模式的情况下进行的吗? avro不能从文件本身中读取吗?
答案 0 :(得分:0)
当已经有获取json的工具时,为什么要编写代码?
topicExists
http://central.maven.org/maven2/org/apache/avro/avro-tools/1.8.2/avro-tools-1.8.2.jar
否则,您的文件具有架构,您必须在读取文件内容之前首先将其解压缩,这正是上述工具的源代码所做的