在下面的字数统计示例中:
(Hello,1)
(Hello,1)
(Hello,1)
(Hello,1)
(Hello,1)Hadoop的reducer函数将使用键"Hello“收集所有5个元素,然后在reducer函数中进行聚合。
然而,在Spark中,它实际上是每次减少2个元素。例如,它将第一个和第二个(Hello,1)组合为(Hello,2),将第三个和第四个(Hello,1)组合为(Hello,2) ...等(当然,实际情况可能是不同的顺序)。
那么,有没有专门的术语来描述Spark中使用的这种计算方法呢?谢谢!
发布于 2016-01-07 07:41:57
术语与Map Reduce相同。唯一不同的是,与Map Reduce不同的是,map reduce只提供map和reduce函数来实现过滤、连接和聚合等逻辑,而Spark有许多函数。对于map reduce中的map reduce我们有spark中的map、flatMap、filter等,对于map reduce中的reduce我们有spark中的reduce、count、reduceByKey、countByKey、aggregateByKey、groupByKey、combineByKey等。
在Map Reduce中,如果你想在映射器端预先聚合,则需要指定组合器类,在spark组合器中,如果你使用reduceByKey,aggregateByKey,combineByKey。如果你不想使用组合器,那么你必须使用groupByKey函数。
对于您所询问的主题,map reduce和spark中的技术术语相同。但对于分布式缓存等主题,它是不同的,在Spark中它被称为广播。此外,即使术语相同,但它们的操作方式也有细微的差异。
https://stackoverflow.com/questions/34644181
复制相似问题