首页 > 解决方案 > Spark 或 Flink 中的 reduce、reduceByKey、reduceGroups

问题描述

reduce: 函数采用累积值和下一个值来查找一些聚合。

reduceByKey: 也是与指定键相同的操作。

reduceGroups: 是对分组数据应用指定的操作。

我不知道如何为这些操作管理内存。例如,在使用reduce函数时如何获取数据(例如,所有数据都加载到内存中?)?我想知道如何为减少操作管理数据。我也想知道根据数据管理这些操作有什么区别。

标签: apache-sparkapache-spark-sqlmapreduceapache-flink

解决方案


Reduce 是 Spark 中最便宜的操作之一,因为它唯一做的实际上是将相似的数据分组到同一个节点。reduce 操作的唯一成本是读取元组并决定应该在哪里分组。这意味着与orreduce相比,简单的 ,更昂贵,因为 Spark 不知道如何进行分组并搜索元组之间的相关性。reduceByKeyreduceGroups

如果元组不满足任何要求,Reduce 也可以忽略它。


推荐阅读