我们可以使用 set() 函数来创建和设置 Writable 的值: IntWritable wirtable = new IntWritable(); writable.set(163); 同样我们也可以使用构造函数: IntWritable writable = new IntWritable(163); package org.apache.hadoop.io; import java.io.DataOutput; import java.io.DataInput; import java.io.IOException; public interface Writable { void write(DataOutput out) throws IOException; void readFields(DataInput in) throws IOException;}
Writable 接口 Writable 接口定义了两个方法: (1)一个用于将其状态写入二进制格式的 DataOutput 流; (2)另一个用于从二进制格式的 DataInput 流读取其状态;
BytesWritable 是一个二进制的数据数组封装。它的序列化格式是一个int字段. BytesWritable是可变的,其值可以通过调用set()方法来改变。 ObjectWriable ObjectWriable 适用于字段可以使用多种类型时。 Writable集合 一共 四种: ArrayWritable和TwoDArrayWritable是针对数组与二维数组 MapWritable和SortededMapWritable 针对是Map与SortMap 实现WritableComparable 实现 /** * 将对象转换为字节流并写入到输出流out中 */ write() /** * 从输入流in 中读取字节流并反序列化为对象 */ readFields(), /** * 将this对像与对象O比较*/ compareTo()方法。 第四部分:基于文件的数据结构 SequeceFile是Hadoop API提供的一种二进制文件支持。这种二进制文件直接将