在大数据处理工作中,功能“折叠”与功能“减少”相比具有更低的计算性能吗?
例如,我有以下两个功能:
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数组。哪个函数具有更高的计算性能,给出相同的聚类设置。
答案 0 :(得分:1)
这确实是same as the one pointed out by muhuk,因为Spark实现的胆量仅仅是对self.Da
的调用
iterator
来自:
fold
(iter: Iterator[T]) => iter.fold(zeroValue)(cleanOp)
来自:
reduce
因此,这主要是调用scala实现。