在开发中往往常用的基本序列化类型,不能满足所有需求,比如在hadoop框架内部传递一个bean对象,那么该对象需要实现序列化接口
具体实现对象序列化步骤如下7步:
1、必须实现Writable接口
2、反序列化时,需要反射调用无参构造,所有必须有无参构造
3重新序列化方法
4、重写反序列化方法
5、反序列化的顺序和序列化的顺序安全一致
6、要把结果显示在文件中,需重写toString()方法
7、如果需要将自定义的bean放在key中传输,则还需要实现Comparable接口,因为MapReduce框架中的Shuffle过程要求都key必须能排序
案例:
将上述表格中电话和上行流量、下行流量输出,并统计总流量,结果如下
代码:
Bean代码
package cn.kgc.flow;
import org.apache.hadoop.io.Writable;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
/**
* @author czg
* date
* description
*/
public class FlowBean implements Writab