Avro 简明教程

AVRO - Reference API

在上一章,我们介绍了 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&lt;D&gt; 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) 根据名称设置给定字段的值。