我试图在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)
暂无答案!
目前还没有任何答案,快来回答吧!