java - 过滤和减少之间的区别?

标签 java apache-spark pyspark rdd

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/

相关文章:

java - 如何导入 com.mojang.authlib.GameProfile

apache-spark - SPARK YARN:无法从客户端发送作业(org.apache.hadoop.ipc.Client-重试连接到服务器:0.0.0.0/0.0.0.0:8032)

python - 如何在 PySpark 中编写 pandas 的 merge_asof 等价项

amazon-web-services - 如何使用 apache spark 处理数百万个较小的 s3 文件

python - 根据多个条件删除 PySpark 数据框中的行

python - 当任何列中存在其他表中的单词时,过滤掉 Pyspark 中的行

java - 防止向用户显示任何异常?

java - 使用InputStreamReader读取文件?

java - 如何使用自定义 JTable 单元格编辑器和单元格渲染器

scala - Spark BigQuery 连接器 : Writing ARRAY type causes exception: ""Invalid value for: ARRAY is not a valid value""