在大数据处理作业中,与函数reduce相比,函数fold的计算性能是否较低?
例如,我有以下两个函数:
array1.indices.zip(array1).map(x => x._1 * x._2).reduce(_ + _)
array1.indices.zip(array1).map(x => x._1 * x._2).fold(0.0) {_ + _}array1是一个非常大的rdd阵列。在给定相同的聚类设置的情况下,哪个函数具有更高的计算性能。
发布于 2015-04-30 01:19:15
这确实是same as the one pointed out by muhuk,因为Spark实现的核心仅仅是对iterator的调用
来自源代码的fold:
(iter: Iterator[T]) => iter.fold(zeroValue)(cleanOp)来自源的reduce:
iter =>
if (iter.hasNext)Some(iter.reduceLeft(cleanF))
else None所以,这主要是在调用scala实现。
https://stackoverflow.com/questions/29932025
复制相似问题