spark RDD上的 filter() 和 reduce() 方法有什么区别?换句话说,为什么 filter() 是转换, reduce() 是行动?对我来说,两者听起来都很相似。那么是什滤波器是窄还是宽?
答案 0 :(得分:1)
过滤器很窄,因为它只适用于每行级别并返回另一个(已过滤的)rdd。 Reduce实际上返回一个在整个rdd上计算的单个值。要返回此值,必须进行实际计算,这就是reduce是一个操作的原因。
一般来说,必须返回实际值或写一些输出的rdd.functions是动作,而返回另一个rdd的rdd.functions是转换。
只有当需要一个动作时,才会发生导致它的rdd转换(Spark的懒惰属性)