reduce
:函数使用累加值和下一个值来查找某个聚合。
reduceByKey
:与指定键也相同。
reduceGroups
:将指定的操作应用于分组的数据。
我不知道这些操作如何管理内存。例如,在使用reduce
功能时如何获取数据(例如,所有数据已加载到存储器中?)?我想知道如何管理数据以减少操作。我还想知道根据数据管理,这些操作之间有什么区别。
Reduce是Spark中最便宜的操作之一,因为它唯一要做的实际上是将相似的数据分组到同一节点。reduce操作的唯一开销是读取元组并决定应将其放在哪里。分组。这意味着与reduce
或reduceByKey
相比,简单的reduceGroups
更加昂贵,因为Spark不知道如何进行分组并搜索元组之间的相关性。
Reduce也可以忽略不满足任何条件的元组。