spark RDD 上的 filter() 和 reduce() 方法有什么区别?换句话说,为什么filter()是transformation,而reduce()是action呢?对我来说,两者听起来很相似。那么是什么让它们不同呢?过滤器是窄的还是宽的?
最佳答案
过滤器很窄,因为它仅适用于每行级别并返回另一个(过滤后的)rdd。 Reduce 实际上返回一个通过整个 rdd 计算得出的单个值。为了返回这个值,必须进行实际的计算,这就是为什么reduce是一个 Action 。
一般来说,必须返回实际值或写入一些输出的 rdd.functions 是操作,而返回另一个 rdd 的 rdd.functions 是转换。
只有当需要某个操作时,才会发生导致该操作的 rdd 转换(Spark 的惰性属性)
关于java - 过滤和减少之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38103377/