python 里面的 map、reduce、filter 这些函数和 mapreduce 有什么关系?

python 里面的 map、reduce、filter 这些函数和 mapreduce 有什么关系?

『python 里面的 map、reduce、filter 这些函数』和 『谷歌三驾马车之一的 mapreduce』 有什么关系?

有关系吗?还是一点关系都没有?就想 java 和 javascript 一样?


回答:

个人感觉,除了函数名很像外,没啥相同的。
map,reduce都是Python自带的高阶函数,返回类型为生成器。至于什么是生成器,这些可以去百度,也可以参考这篇blog。完全理解Python迭代对象、迭代器、生成器
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。可以看看这个MapReduce 原理与实践。


回答:

$$

idea是一样的,map用来将数据处理,reduce聚合数据

$$

举一个map的例子
gather = map(lambda x:int(x),['1','2','3'])

$$

上面的例子中,map对list中的每一个元素做一个映射的处理(str 转 int)\\

其接收两个参数 callable,iterable

$$

reduce的例子

$$

python高版本中已经把reduce从内置库中移到functool...原因大概是用的不频繁\\

reduce接收三个参数 callable,iterable,init初始值\\

会遍历iterable,将每个遍历到的元素和init初始值做对应的处理

$$

def add(x, y):

return x + y

sum1 = reduce(add, [1,2,3,4,5])

sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5],0)

# sum([1,2,3,4,5]) 岂不是更方便~~

$$

题主的意思大概是想问hadoop那种mapreduce和python里内置函数的区别...\\

idea是一样的,都是想用map处理数据,reduce聚合数据\\

在上面的例子中,将列表的元素换成str,这个str长这个样'XXX':'YYY'\\

map的任务可以是遍历所有的str,将其转换维(XXX:YYY)的key-value对\\

而reduce接收map处理完的key-value对集合,将init初始值设置为dict\\

聚合函数设置为dict[key]+=value\\

这样就可以实现wordCount这样的任务\\

$$

所以...还是有联系的...毕竟是现有map,reduce函数,后有MapReduce

以上是 python 里面的 map、reduce、filter 这些函数和 mapreduce 有什么关系? 的全部内容, 来源链接: utcz.com/p/938651.html

回到顶部