foldByKey,aggregateByKey或combineByKey中初始值的重要性

时间:2017-03-20 16:11:01

标签: apache-spark

foldByKey,spark中的aggregateByKey或combineByKey转换要求用户提供initialValue。我读了一些关于它的文章。在每篇文章中,都说initialValue不应该影响最终结果,即在函数中使用0,在乘法中使用1等。那么该值的相关性是什么。

根据spark文档

,举例说明foldByKey

使用关联函数和中性“零值”合并每个键的值,该值可以任意次数添加到结果中,并且不得更改结果

以下是使用0作为初始值的foldByKey的代码示例:

  

rdd.foldByKey(0,(v1,v2) - > v1 + v2);   其中,整数中RDD的值类型。

但是,reduceByKey也会提供相同的结果。

有人可以说明为什么需要initialValue参数。它有任何功能/性能优势吗?

0 个答案:

没有答案