如何在Hadoop MapReduce中将Object设置为Map输出的值?

在Hadoop MapReduce中,对于中间输出(由map()生成),我希望中间输出的值是以下对象。

MyObject{ date:Date balance:Double } 

我该怎么做 我应该创建自己的可写类吗?

我是MapReduce的新手。

谢谢。

您可以编写可以作为映射器值发出的自定义类型。 但无论你想要作为值发出什么,都必须实现可写接口。 你可以这样做:

 public class MyObj implements WritableComparable{ private String date; private Double balance; public String getDate() { return date;} public Double getBalance() { return balance;} @Override public void readFields(DataInput in) throws IOException { //Define how you want to read the fields } @Override public void writeFields(DataOutput out) throws IOException { //Define how you want to write the fields } ....... ....... ....... } 

或者,您可以使用Avro序列化框架。