【发布时间】:2015-04-07 16:06:13
【问题描述】:
我知道以前有人问过这个问题,但我认为我的失败是由于不同的原因。
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”程序。上面的行获取reduce 步骤的结果并循环遍历每个结果元素。如果我将它们注释掉,那么我不会收到任何错误。我远离使用 'forEach' 或简洁的 for () 认为底层生成的产生不可序列化的元素。我已经把它归结为一个简单的 for 循环,所以想知道为什么我仍然遇到这个错误。
谢谢, 兰吉特
【问题讨论】:
标签: exception serialization apache-spark