- 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) 设置给定字段名的值。 |