spark组合在本地和集群之间产生不同的结果

fhg3lkii  于 2021-05-22  发布在  Spark
关注(0)|答案(0)|浏览(362)

我试图在java上实现spark中的combinebykey函数。

JavaPairRDD<Tuple3<String, String, Integer>, Integer> result = myPairRdd.combineByKey(f1(), f2(),
                f3());
    private Function2<Integer, Integer, Integer> f3() {
        return (c, c1) ->  c + c1;
    }

    private Function2<Integer, Integer, Integer> f2() {
        return (e, c) -> e + c;
    }

    private Function<Integer, Integer> f1() {
        return e -> e ;
    }

但所得结果并不是综合的
我的印象是最后一个函数f3(combinevalue)不起作用。
我知道当我在ide上用一个执行器和一个分区运行代码时,结果是好的,但是在集群上,用几个执行器,结果就不起作用了。日志:

BatchService: result: ((PER,TES,1),15)
BatchService: result: ((PER,TES,1),56)
BatchService: result: ((PER,TES,1),98)

预期:

BatchService: result: ((PER,TES,1),169)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题