Apache Spark减少动作调用功能的次数超过预期

时间:2018-10-19 16:02:18

标签: java apache-spark rdd fold

我创建了这样的RDD:

Markdown::parse($slot)

还有这个Function2类

JavaRDD<Integer> rdd = sc.parallelize(Arrays.asList(2, 3, 4));

然后我像这样调用fold函数:

public class FoldFunction implements Function2<Integer, Integer, Integer> {

    @Override
    public Integer call(Integer v1, Integer v2) throws Exception {
        System.out.println("v1 " + v1 + " v2 " + v2);
        return (v1.intValue() + 1);
    }
}

FoldFunction类中的调用函数被调用了四次,这比我预期的多一倍。每个呼叫的值是:

Integer val2 = rdd.fold(0, new FoldFunction ());

我不确定为什么调用函数被调用了四次,或者为什么在第四次调用中参数值分别为0和3。

有人能对此有所启发吗?

我正在使用Java 8和Spark Core 2.3.2 谢谢

0 个答案:

没有答案