过滤器和减少之间的区别?

Difference between filter and reduce?

filter()reduce()[=20有什么区别=] spark RDD 上的方法?换句话说,为什么 filter() 是转换而 reduce() 是行动吗?对我来说,这两种声音 similar.So 是什么让它们不同?过滤器是窄的还是宽的?

filter 很窄,因为它仅适用于每行级别,returns 另一个(已过滤)rdd。 实际上减少 returns 一个在整个 rdd 上计算的单个值。要对该值进行 return 编辑,必须进行实际计算,这就是为什么 reduce 是一个操作。

通常 rdd.functions 必须 return 实际值或写入一些输出是操作,而 rdd.functions return 另一个 rdd 是转换。

只有当需要一个动作时,导致它的rdd转换才会发生(Spark的惰性属性)