gpt4 book ai didi

java - combinebykey 和 aggregatebykey 的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:16:14 26 4
gpt4 key购买 nike

我是 Apache spark 的新手,所以这个问题可能不好问,但我不知道 combinebykeyaggregatebykey 之间的区别以及何时使用哪个操作。

最佳答案

aggregateByKey 采用初始累加器,第一个 lambda 函数将值合并到累加器,第二个 lambda 函数合并两个累加器。

combineByKey 更通用,并添加了一个初始 lambda 函数来创建初始累加器

举个例子:

val pairs = sc.parallelize(List(("prova", 1), ("ciao", 2),
("prova", 2), ("ciao", 4),
("prova", 3), ("ciao", 6)))

pairs.aggregateByKey(List[Any]())(
(aggr, value) => aggr ::: (value :: Nil),
(aggr1, aggr2) => aggr1 ::: aggr2
).collect().toMap

pairs.combineByKey(
(value) => List(value),
(aggr: List[Any], value) => aggr ::: (value :: Nil),
(aggr1: List[Any], aggr2: List[Any]) => aggr1 ::: aggr2
).collect().toMap

关于java - combinebykey 和 aggregatebykey 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43489527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com