RDD.reduce
这个action的作用:
在reduce中,是把rdd中所有的task中的结果合并成一个结果,最终输出这个结果.这个类似于一个count操作.在reduce中,传入的函数传入两个T类型的参数(T类型是RDD中KV的类型),这个函数返回值也是一个T类型的结果.注意,很多同学会把这个跟hadoop中的map reduce中的reduce进行等同看待,其实不是的,在map reduce中的reduce更像是spark中的一个groupByKey的操作,spark中的reduce只返回一个值,这个值是执行REDUCE操作的RDD中KV的类型.
在reduce的实现内部,定义了两个函数来进行处理.
def reduce(f: (T, T) => T): T = withScope {
1,这里定义了每个partition的task的执行函数,主要是对iterator进行迭代,