我目前刚刚开始学习 Apache Spark,并且有一些代码我不太明白为什么无法编译。它说我发送到 myRDD forEach 的任务不可序列化,但是我正在观看的教程也做了类似的事情。任何想法或线索将不胜感激。
public class Main {
public static void main(String[] args) {
Logger.getLogger("org.apache").setLevel(Level.WARN);
List<Integer> inputData = new ArrayList<>();
inputData.add(25);
SparkConf conf = new SparkConf().setAppName("startingSpark").setMaster("local[*]");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<Integer> myRDD = sc.parallelize(inputData);
Integer result = myRDD.reduce((x, y) -> x + y);
myRDD.foreach( System.out::println );
System.out.println(result);
sc.close();
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
Exception in thread "main" org.apache.spark.SparkException: Task not serializable...
at com.virtualpairprogrammers.Main.main(Main.java:26)
Caused by: java.io.NotSerializableException: java.io.PrintStream
Serialization stack:
- object not serializable (class: java.io.PrintStream, value: java.io.PrintStream@11a82d0f)
- element …Run Code Online (Sandbox Code Playgroud)