1.python里的用法:
map()函数实现将参数一一给到函数并返回结果的功能
例如:
def f(a):
return str(a)
map(f, [1, 2, 3, 4])
out:['1','2','3','4']
reduce()函数实现将前一个结果和当前参数共同放入函数中并计算结果,换句话说,前边一个执行结果是后边函数的一个参数(python3里用reduce需要导入)
例如:
from functools import reduce
def add(x,y):
return x+y
reduce(add,[1,2,3,4,5])
out:15
将map和reduce合并起来使用:
def fn(x, y):
return x * 10 + y
def char2num(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
reduce(fn, map(char2num, '1234'))
out:1234
2.hadoop里的map、reduce:

【图片来源:https://www.jianshu.com/p/461f86936972】
简单说来,一个映射函数就是对一些独立元素组成的概念上的列表(例如,一个测试成绩的列表)的每一个元素进行指定的操作(比如前面的例子里,有人发现所有学生的成绩都被高估了一分,它可以定义一个“减一”的映射函数,用来修正这个错误。)而化简操作指的是对一个列表的元素进行适当的合并(继续看前面的例子,如果有人想知道班级的平均分该怎么做?它可以定义一个化简函数,通过让列表中的元素跟自己的相邻的元素相加的方式把列表减半,如此递归运算直到列表只剩下一个元素,然后用这个元素除以人数,就得到了平均分。)【摘自百度词条】
参考文章:https://www.jianshu.com/p/461f86936972

被折叠的 条评论
为什么被折叠?



