- Avro 基礎
- Avro - 首頁
- Avro - 概述
- Avro - 序列化
- Avro - 環境設定
- Avro 模式 & API
- Avro - 模式
- Avro 參考 API
- 透過程式碼生成使用 Avro
- 透過程式碼生成進行序列化
- 透過程式碼生成進行反序列化
- 使用解析器庫使用 Avro
- 使用解析器進行序列化
- 使用解析器進行反序列化
- Avro 有用資源
- Avro - 快速指南
- Avro - 有用資源
- Avro - 討論
Avro 參考 API
在上一章中,我們描述了 Avro 的輸入型別,即 Avro 模式。本章將解釋在 Avro 模式的序列化和反序列化中使用的類和方法。
SpecificDatumWriter 類
此類屬於包 **org.apache.avro.specific**。它實現了 **DatumWriter** 介面,該介面將 Java 物件轉換為記憶體中的序列化格式。
建構函式
| 序號 | 描述 |
|---|---|
| 1 | SpecificDatumWriter(Schema schema) |
方法
| 序號 | 描述 |
|---|---|
| 1 | SpecificData getSpecificData() 返回此寫入器使用的 SpecificData 實現。 |
SpecificDatumReader 類
此類屬於包 **org.apache.avro.specific**。它實現了 **DatumReader** 介面,該介面讀取模式的資料並確定記憶體中的資料表示。**SpecificDatumReader** 是支援生成的 Java 類的類。
建構函式
| 序號 | 描述 |
|---|---|
| 1 | SpecificDatumReader(Schema schema) 寫入器和讀取器的模式相同的建構函式。 |
方法
| 序號 | 描述 |
|---|---|
| 1 | SpecificData getSpecificData() 返回包含的 SpecificData。 |
| 2 | void setSchema(Schema actual) 此方法用於設定寫入器的模式。 |
DataFileWriter
為 **emp** 類例項化 **DataFileWrite**。此類將符合模式的一系列序列化資料記錄以及模式寫入檔案。
建構函式
| 序號 | 描述 |
|---|---|
| 1 | DataFileWriter(DatumWriter<D> dout) |
方法
| 序號 | 描述 |
|---|---|
| 1 | void append(D datum) 將資料追加到檔案。 |
| 2 | DataFileWriter<D> appendTo(File file) 此方法用於開啟一個追加到現有檔案的寫入器。 |
DataFileReader
此類提供對使用 **DataFileWriter** 編寫的檔案的隨機訪問。它繼承了類 **DataFileStream**。
建構函式
| 序號 | 描述 |
|---|---|
| 1 | DataFileReader(File file, DatumReader<D> reader)) |
方法
| 序號 | 描述 |
|---|---|
| 1 | next() 讀取檔案中的下一個資料。 |
| 2 | Boolean hasNext() 如果此檔案中還有更多條目,則返回 true。 |
Schema.parser 類
此類是 JSON 格式模式的解析器。它包含用於解析模式的方法。它屬於 **org.apache.avro** 包。
建構函式
| 序號 | 描述 |
|---|---|
| 1 | Schema.Parser() |
方法
| 序號 | 描述 |
|---|---|
| 1 | parse (File file) 解析給定 **file** 中提供的模式。 |
| 2 | parse (InputStream in) 解析給定 **InputStream** 中提供的模式。 |
| 3 | parse (String s) 解析給定 **String** 中提供的模式。 |
GenricRecord 介面
此介面提供透過名稱和索引訪問欄位的方法。
方法
| 序號 | 描述 |
|---|---|
| 1 | Object get(String key) 返回給定欄位的值。 |
| 2 | void put(String key, Object v) 設定給定欄位名的值。 |
GenericData.Record 類
建構函式
| 序號 | 描述 |
|---|---|
| 1 | GenericData.Record(Schema schema) |
方法
| 序號 | 描述 |
|---|---|
| 1 | Object get(String key) 返回給定名稱的欄位的值。 |
| 2 | Schema getSchema() 返回此例項的模式。 |
| 3 | void put(int i, Object v) 設定給定其在模式中的位置的欄位的值。 |
| 4 | void put(String key, Object value) 設定給定欄位名的值。 |