apache-spark - Spark 或 Flink 中的 reduce、reduceByKey、reduceGroups
问题描述
reduce
: 函数采用累积值和下一个值来查找一些聚合。
reduceByKey
: 也是与指定键相同的操作。
reduceGroups
: 是对分组数据应用指定的操作。
我不知道如何为这些操作管理内存。例如,在使用reduce
函数时如何获取数据(例如,所有数据都加载到内存中?)?我想知道如何为减少操作管理数据。我也想知道根据数据管理这些操作有什么区别。
解决方案
Reduce 是 Spark 中最便宜的操作之一,因为它唯一做的实际上是将相似的数据分组到同一个节点。reduce 操作的唯一成本是读取元组并决定应该在哪里分组。这意味着与orreduce
相比,简单的 ,更昂贵,因为 Spark 不知道如何进行分组并搜索元组之间的相关性。reduceByKey
reduceGroups
如果元组不满足任何要求,Reduce 也可以忽略它。
推荐阅读
- r - 基于lm规范在数据集中自动创建变量
- mysql - SQL Countifs 和 Sumifs 函数
- ios - 如何在 SafariViewController 中禁用防止跨站点跟踪
- flutter - 为什么我的函数不接受颜色类型的参数名称?
- python - 如何使用python从文件中删除多行
- json - 使用 axios.post 发送带有数组元素的 JSON
- java - Error while retrieving the list of applied migrations from metadata table "public"."schema_version"
- api - Where can I find a full spanish dictionary in json or csv?
- java - How do i give null as an input through scanner in java
- c++ - C++ - 没有匹配函数调用“getaddrinfo”