该博客已经完全转移到http://sunhs.me
中并增加更多新的技术内容(hadoop为
主),欢迎访问!
mapreduce中用户自定义数据类型
hadoop内置的数据类型:
BooleanWritable
ByteWritable
DoubleWritable
FloatWritable
IntWritable
LongWritable
Text
NullWritable
自定义数据类型时第一个基本的要求是实现Writable接口,如果该数据要被作为主键key使用的话还必须实现WritableComparable接口
public class Point3D implemants WritableComparable<Point3D>{ private float x,y,z; public float getX(){return x;} public float getY(){return y;} public float getZ(){return z;} public void readFields(DataInput in)throws IOException{ x = in.readFloat(); y = in.readFloat(); z = in.readFloat(); } public void write(DataOutput out)throws IOException{ out.writeFloat(x); out.writeFloat(y); out.writeFloat(z); } public int compareTo(Point3D p){ //具体实现比较当前的空间坐标点this(x,y,z)与指定的点p(x,y,z)的大小 //并输出-1(小于),0(等于),1(大于) } }