java spark報錯:Task not serializable
阿新 • • 發佈:2018-12-14
- 在spark記憶體計算
JavaPairRDD<String, Integer> results = listRDD.reduceByKey(new Function2<Integer, Integer, Integer>() {
@Override
public Integer call(Integer s1, Integer s2) throws Exception {
return s1 + s2;
}
});
- 遇到錯誤:Task not serializable
- 問題解決:
- 生成serialVersionUID新增到上面程式碼中。
import java.io.Serializable;
public class X implements Serializable{
private static final long serialVersionUID = -3175162002464574460L;
}
- 介面中修改為
import java.io.Serializable;
public interface ITransformation extends Serializable {
……
}
- 最終程式碼為
JavaPairRDD<String, Integer> results = listRDD.reduceByKey(new Function2<Integer, Integer, Integer>() {
private static final long serialVersionUID = -3175162002464574460L;
@Override
public Integer call(Integer s1, Integer s2) throws Exception {
return s1 + s2;
}
} );
- 完成問題解決。