【发布时间】:2019-09-26 09:22:25
【问题描述】:
这是来自 tutorialspoint 的反序列化器。
public class Deserialize {
public static void main(String args[]) throws Exception{
//Instantiating the Schema.Parser class.
Schema schema = new Schema.Parser().parse(new File("/home/Hadoop/Avro/schema/emp.avsc"));
DatumReader<GenericRecord> datumReader = new GenericDatumReader<GenericRecord>(schema);
DataFileReader<GenericRecord> dataFileReader = new DataFileReader<GenericRecord>(new File("/home/Hadoop/Avro_Work/without_code_gen/mydata.txt"), datumReader);
GenericRecord emp = null;
while (dataFileReader.hasNext()) {
emp = dataFileReader.next(emp);
System.out.println(emp);
}
System.out.println("hello");
}
}
我的问题是:如果 .avro 文件中已经存在架构,为什么我还必须传递架构?我发现必须提供架构才能解析文件非常不方便。
【问题讨论】:
标签: java deserialization avro