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