Hadoop MapReduce では、中間出力 (map() によって生成される) の場合、中間出力の値を次のオブジェクトにする必要があります。
MyObject{
date:Date
balance:Double
}
どうすればこれを行うことができますか。独自の書き込み可能なクラスを作成する必要がありますか?
私は MapReduce の初心者です。
ありがとう。
Hadoop MapReduce では、中間出力 (map() によって生成される) の場合、中間出力の値を次のオブジェクトにする必要があります。
MyObject{
date:Date
balance:Double
}
どうすればこれを行うことができますか。独自の書き込み可能なクラスを作成する必要がありますか?
私は MapReduce の初心者です。
ありがとう。
マッパー値として発行できるカスタムタイプを作成できます。ただし、値として発行するものは何でも、書き込み可能なインターフェイスを実装する必要があります。次のようなことができます:
public class MyObj implements WritableComparable<MyObj>{
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 シリアライゼーション フレームワークを利用することもできます。