1,Task in stage had a not serializable result: lambda表达式id或某对象id
Serialization stack: - object not serializable(class:...value:...)
在map、mappartition、reduce等各种方法中存在不能序列化的对象,无法在节点间传输导致此错误,例如,在以上方法中可以使用lambda式或匿名内部类作为参数,但是在这些参数内部不能再存在其他lambda式或匿名内部类
JavaRDD<TreeMap<Double, String>> maps=pairs.mapPartitions(n->{
TreeMap<Double,String> sl=new TreeMap<Double,String>((x,y)->x>y?1:-1);//此处即会报错
return Collections.singletonList(sl).iterator();
});
在此类方法中引用了未实现Serializable的全局变量也会引起此错误,解决方法是将该变量在全局部分广播,再在map中getValue。2,很多NullPointerException都是空行造成的,在最开始就应该使用.filter(a->a.length()>0)筛除掉。