【问题标题】:reduce, reduceByKey, reduceGroups in Spark or FlinkSpark 或 Flink 中的 reduce、reduceByKey、reduceGroups
【发布时间】:2019-09-29 22:18:10
【问题描述】:

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

reduceByKey: 与指定key也是一样的操作。

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

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

【问题讨论】:

    标签: apache-spark apache-spark-sql mapreduce apache-flink


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 2019-03-05
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      相关资源
      最近更新 更多