【问题标题】:Difference between filter and reduce?过滤和减少的区别?
【发布时间】:2016-06-29 15:02:01
【问题描述】:

filter()reduce() 方法在 spark RDD 上有什么区别?换句话说,为什么 filter() 是转换而 reduce() 是动作?对我来说两者听起来很相似。那么是什么让它们不同?过滤器是窄的还是宽的?

【问题讨论】:

    标签: java apache-spark pyspark rdd


    【解决方案1】:

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

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

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

    【讨论】:

    • 有道理:)
    猜你喜欢
    • 2012-02-21
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多