如何簡單解釋 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 關注
- 900 瀏覽
添加回答
舉報
0/150
提交
取消