python实现mapreduce模式的例子

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了python实现mapreduce模式的例子脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Mapreduce是一种从函数式编程语言借鉴过来的模式,在某些场景下,它可以极大地简化代码。先看一下什么是MapReduce:

MaPReduce是GOOGLE提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(归纳)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。
当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归纳)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
简单来说,MapReduce就是把待处理的问题分解为Map和Reduce两个部分。而待处理的数据作为一个序列,每一个序列里的数据通过Map的函数进行运算,再通过Reduce的函数进行聚合成最终的结果。

下面使用Mapreduce模式实现了一个简单的统计日志中单词出现次数的程序:

From functools import reduce
from multiprocessing import Pool
from collections import Counter

def read_inputs(file):
    for line in file:
        line = line.strip()
        yield line.splIT()

def count(file_name):
    file = oPEn(file_name)
    lines = read_inputs(file)
    c = Counter()
    for words in lines:
        for word in words:
            c[word] += 1
    return c

def do_task():
    job_list = ['LOG.txt'] * 10000
    pool = Pool(8)
    return reduce(lambda x, y: x+y, pool.map(count, job_list))

if __name__ == "__main__":
    rv = do_task()

脚本宝典总结

以上是脚本宝典为你收集整理的python实现mapreduce模式的例子全部内容,希望文章能够帮你解决python实现mapreduce模式的例子所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。