avro文件讀寫


avro文件是常用的一種文件類型,它跟json文件一樣存儲了文件的元信息,它可以方便的進行序列化和反序列化。

avro文件

寫avro文件主要包括三步,第一步創建avro文件的schema,第二步創建avro文件的輸出,第三步將要寫入avro文件的數據按照schema寫出去。

1.創建schema,可以讀取文件創建schema也可以自己寫一個字符串,然后通過Schema.parse(sch);生成schema,如下圖所示:

 

2.創建avro文件的輸出,使用如下代碼創建輸出,也可以將out改為file類型的文件,不過考慮到使用的廣泛性,這里以輸入輸出流為例。

 

3.寫數據,按照schema的規范,將數據寫出,如下圖所示:

 

讀取avro文件

讀取avro文件分為三步,第一步創建avro文件的讀取,第二步獲得avro文件的schema,第三步根據獲得的schema讀取avro文件的記錄。

1.創建avro文件讀取,使用DataFileStream來創建讀取,代碼如下:

DataFileStream<GenericRecord> reader = new DataFileStream<>(in, new GenericDatumReader<>())

其中in為avro文件的文件流。

2.獲得avro文件的schema,使用如下代碼獲取schema。

List<Schema.Field> list = reader.getSchema().getFields();

3.第三步,根據schema讀取所有記錄,如下圖所示:

 

最終builder為avro文件的所有記錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM