[英]Hadoop Deserialisation not working for List
我的Map Reduce程序中創建了以下自定義對象:
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為null。
是因為我有List並且它應該是實現Writable接口的類型?
任何幫助將不勝感激,並在此先感謝
我在以下行中收到NullPointerException:growthValues.add(dValue); 這意味着dValue為null。
錯了 這意味着growthValues
為空。
您缺少創建反序列化實際列表的步驟。
int size = in.readInt();
growthValues = new ArrayList<>(size);
for(int i = 0; i < size; i++){
growthValues.add(in.readDouble());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.