我知道这个问题之前已经被问过了,但我认为我的失败原因不同。
List<Tuple2<String, Integer>> results = results.collect();
for (int i=0; i<results.size(); i++) {
System.out.println(results.get(0)._1);
}
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task not serializable: java.io.NotSerializableException: tools.MAStreamProcessor$1 at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1214) at
我在Spark中有一个简单的'map/reduce'程序。上述代码行获取缩减步骤的结果并循环遍历每个结果元素。如果我注释掉它们,就不会出现错误。我避免使用'forEach'或简洁的for(),因为底层生成的元素可能无法序列化。我已将其简化为一个简单的for循环,所以想知道为什么仍然会遇到此错误。
谢谢, Ranjit