map reduce

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值