如何简单解释 MapReduce 算法
2 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
map 根据输入的映射函数,将一个集合映射为另一个集合,比如:
输入集合为 {1,2,3,4,5},输入的函数为 f(x) = x^2,那么输出的集合就是 {1,4,9,16,25}。
reduce 就是根据输入的归约函数,将集合(一般指map输出的集合)归约,比如上面的输出集合是 {1,4,9,16,25},假设我们的归约函数是 f(x,y) = x + y, 那么 reduce 的过程就是 {5,9,16,25} -> {14,16,25} -> {30,25} -> {55}。
我们使用 Java8 来描述这个过程:
12345 | int result = IntStream.range( 1 , 6 ) // 获得集合 {1,2,3,4,5} .map(x -> x * x) // 映射为 {1,4,9,16,25} .reduce((x, y) -> x + y) // 归约 .getAsInt(); // 获得结果 System.out.println(result); |
结果:
- 2 回答
- 0 关注
- 854 浏览
添加回答
举报
0/150
提交
取消