在上一章,我们介绍了 Avro 的输入类型,即 Avro 模式。在本章,我们将介绍在 Avro 模式的序列化和反序列化中使用的类和方法。
SpecificDatumWriter Class
此类属于 org.apache.avro.specific 程序包。它实现了接口 DatumWriter ,该接口将 Java 对象转换为内存中的序列化格式。
Constructor
S.No. |
Description |
1 |
SpecificDatumWriter(Schema schema) |
Method
S.No. |
Description |
1 |
SpecificData getSpecificData() 返回此编写器使用的 SpecificData 实现。 |
SpecificDatumReader Class
此类属于程序包 org.apache.avro.specific 。它实现了接口 DatumReader ,该接口读取模式的数据并确定内存中数据表示。 SpecificDatumReader 是支持生成 Java 类别。
Constructor
S.No. |
Description |
1 |
SpecificDatumReader(Schema schema) 构造,其中编写器的模式和读取器的模式相同。 |
Methods
S.No. |
Description |
1 |
SpecificData getSpecificData() 返回包含的 SpecificData。 |
2 |
void setSchema(Schema actual) 此方法用于设置编写器的模式。 |
DataFileWriter
实例化 DataFileWrite emp 类。此类编写一系列符合模式的序列化数据记录,以及文件中模式。
Constructor
S.No. |
Description |
1 |
DataFileWriter(DatumWriter<D> dout) |
Methods
S.No |
Description |
1 |
void append(D datum) 将数据附加到文件中。 |
2 |
DataFileWriter<D> appendTo(File file) 此方法用于打开一个附加到现有文件的编写器。 |
Data FileReader
此类提供使用 DataFileWriter 编写的文件的随机访问。它继承类 DataFileStream 。
Constructor
S.No. |
Description |
1 |
DataFileReader(File file, DatumReader<D> reader)) |
Methods
S.No. |
Description |
1 |
next() 读取文件中的下一个数据。 |
2 |
Boolean hasNext() 如果此文件中还有更多条目,则返回 true。 |
Class Schema.parser
此类是 JSON 格式模式的解析器。它包含解析模式的方法。它属于 org.apache.avro 程序包。
Constructor
S.No. |
Description |
1 |
Schema.Parser() |
Methods
S.No. |
Description |
1 |
parse (File file) 解析在给定的 file 中提供的模式。 |
2 |
parse (InputStream in) 解析在给定的 InputStream 中提供的模式。 |
3 |
parse (String s) 解析给定 String 中提供的架构图 |
Interface GenricRecord
Methods
S.No. |
Description |
1 |
Object get(String key) 返回给定字段的值。 |
2 |
void put(String key, Object v) 根据名称设置给定字段的值。 |
Class GenericData.Record
Constructor
S.No. |
Description |
1 |
GenericData.Record(Schema schema) |
Methods
S.No. |
Description |
1 |
Object get(String key) 返回给定名称的字段的值。 |
2 |
Schema getSchema() 返回此实例的架构图。 |
3 |
void put(int i, Object v) 根据架构图中的位置设置给定字段的值。 |
4 |
void put(String key, Object value) 根据名称设置给定字段的值。 |