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)

设置给定字段名的值。

广告