我已经为我的地图的一部分创建下列自定义对象减少了程序:Hadoop的Deserialisation不工作的清单
public class Sales implements Writable{
private List<Double> growthValues;
public List<Double> getGrowthValues() {
return growthValues;
}
public void setGrowthValues(List<Double> growthValues) {
this.growthValues = growthValues;
}
@Override
public void readFields(DataInput in) throws IOException {
int size=in.readInt();
Double dValue;
for(int i=0;i<size;i++){
dValue=in.readDouble();
growthValues.add(dValue);
}
}
@Override
public void write(DataOutput out) throws IOException {
out.writeInt(growthValues.size());
for(Double d:growthValues){
out.writeDouble(d);
}
}
}
,我在下面的行得到一个NullPointerException异常: growthValues.add(dValue); 这意味着dValue为空。
是因为我有List,它应该是一个实现Writable接口的类型?
任何帮助,将不胜感激,并在此先感谢
请看看http://stackoverflow.com/questions/14249128/implementation-of-custom-writable-in-hadoop –