自定義Hadoop序列化been Demo
阿新 • • 發佈:2018-12-11
package hadoop.mapreduce.serializable; import org.apache.hadoop.io.Writable; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; /* * 自定義Hadoop序列化 * */ public class MySerializable implements Writable { private String name; private long up; private long down; public String getName() { return name; } public long getData() { return up; } public long getSum() { return down; } public MySerializable() { //反射時會使用 } public MySerializable(String name, long data, long sum) { this.name = name; this.up = data; this.down = sum; } //序列化到流中 @Override public void write(DataOutput dataOutput) throws IOException { dataOutput.writeUTF(name); dataOutput.writeLong(up); dataOutput.writeLong(down); } //反序列化 @Override public void readFields(DataInput dataInput) throws IOException { //通過反射生成物件 name=dataInput.readUTF(); up= dataInput.readLong(); down= dataInput.readLong(); } }