如何簡(jiǎn)單解釋 MapReduce 算法
2 回答

胡子哥哥
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
map 根據(jù)輸入的映射函數(shù),將一個(gè)集合映射為另一個(gè)集合,比如:
輸入集合為 {1,2,3,4,5},輸入的函數(shù)為 f(x) = x^2,那么輸出的集合就是 {1,4,9,16,25}。
reduce 就是根據(jù)輸入的歸約函數(shù),將集合(一般指map輸出的集合)歸約,比如上面的輸出集合是 {1,4,9,16,25},假設(shè)我們的歸約函數(shù)是 f(x,y) = x + y, 那么 reduce 的過程就是 {5,9,16,25} -> {14,16,25} -> {30,25} -> {55}。
我們使用 Java8 來(lái)描述這個(gè)過程:
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(); // 獲得結(jié)果 System.out.println(result); |
結(jié)果:
- 2 回答
- 0 關(guān)注
- 910 瀏覽
添加回答
舉報(bào)
0/150
提交
取消