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

时间:2016-06-29 15:02:02

标签: java apache-spark pyspark rdd

spark RDD上的 filter() reduce() 方法有什么区别?换句话说,为什么 filter() 是转换, reduce() 是行动?对我来说,两者听起来都很相似。那么是什滤波器是窄还是宽?

1 个答案:

答案 0 :(得分:1)

过滤器很窄,因为它只适用于每行级别并返回另一个(已过滤的)rdd。 Reduce实际上返回一个在整个rdd上计算的单个值。要返回此值,必须进行实际计算,这就是reduce是一个操作的原因。

一般来说,必须返回实际值或写一些输出的rdd.functions是动作,而返回另一个rdd的rdd.functions是转换。

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