在上一章中,我们描述了Avro的输入类型,即Avro架构.在本章中,我们将解释Avro模式的序列化和反序列化中使用的类和方法.
SpecificDatumWriter Class
此类属于包 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() 返回包含的内容具体数据. |
2 | void setSchema(Schema actual) 此方法用于设置writer的架构. |
DataFileWriter
为 emp 类实例化 DataFileWrite .此类编写符合模式的数据的序列化序列记录,以及文件中的模式.
构造函数
S.No. | 描述 |
---|---|
1 | DataFileWriter(DatumWriter< D> dout) |
方法
S.No | 描述 |
---|---|
1 | void append(D datum) 将数据追加到文件中. |
2 | DataFileWriter 此方法用于打开附加到现有文件的编写器. |
Data FileReader
此类提供对使用 DataFileWriter 编写的文件的随机访问.它继承了类 DataFileStream .
构造函数
S.No. | 描述 |
---|---|
1 | DataFileReader(File file, DatumReader |
方法
S.No. | 描述 |
---|---|
1 | next() 读取文件中的下一个数据. |
2 | Boolean hasNext() 如果有更多条目,则返回true保留在此文件中. |
Class Schema.parser
此类是JSON格式模式的解析器.它包含解析模式的方法.它属于 org.apache.avro 包.
构造函数
S.No. | 描述 |
---|---|
1 | Schema.Parser() |
方法
S.No. | 描述 |
---|---|
1 | parse (File file) 解析给定文件中提供的架构. |
2 | parse (InputStream in) 解析给定 InputStream 中提供的架构. |
3 | parse (String s) 解析给定字符串中提供的架构. |
接口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) 设置给定名称的字段的值. |