小编ash*_*der的帖子

尝试使用 System.out 作为 RDD 中的任务

我目前刚刚开始学习 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)

java serialization task apache-spark

1
推荐指数
1
解决办法
496
查看次数

标签 统计

apache-spark ×1

java ×1

serialization ×1

task ×1