本文介紹了如何在Java中從avro文件中提取模式的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
如何在Java中首先從Avro文件提取模式,然后從Avro文件中提取數(shù)據(jù)?與this問題相同,但在Java中除外。
我見過如何從AVSC文件而不是avro文件獲取模式的示例。我應該朝哪個方向看?
Schema schema = new Schema.Parser().parse(
new File("/home/Hadoop/Avro/schema/emp.avsc")
);
推薦答案
如果您想知道avro文件的架構,而不必生成相應的類或關心該文件屬于哪個類,則可以使用GenericDatumReader
:
DatumReader<GenericRecord> datumReader = new GenericDatumReader<>();
DataFileReader<GenericRecord> dataFileReader = new DataFileReader<>(new File("file.avro"), datumReader);
Schema schema = dataFileReader.getSchema();
System.out.println(schema);
然后您可以讀取文件中的數(shù)據(jù):
GenericRecord record = null;
while (dataFileReader.hasNext()) {
record = dataFileReader.next(record);
System.out.println(record);
}
這篇關于如何在Java中從avro文件中提取模式的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,