MapReduce中的所有的数据类型要实现Writable接口,以便可以被序列化网络传输和文件储存
基本数据类型有8种,看源码发现都实现了WritableComparable接口,此接口继承了Writable,对key进行排序,所以我们在定义key的数据类型时必须要实现WritableComaprable接口。
以下分别分为两部分介绍:1、对于key的数据类型自定义 2、对于value的数据类型自定义
一、对于key的数据类型自定义要点
1、implement WritableComparable<自定义类名>
2、重写compareTo,write,readFileds方法
3、给所有属性给get,set方法
4、一个空构造和一个全参构造
5、写一个set方法,在全参构造中调用赋值
6、重写toString和equals和HashCode方法
代码如下:
package com.kfk.hadoop.io;
import org.apache.hadoop.io.WritableComparable;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public class OrderWritable implements WritableComparable<OrderWritable> {
private String orderId;
private float price;
public OrderWritable(String orderId, float price) {
this.get(orderId,price);
}
pub