我创建了这样的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 谢谢