您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

python实现mapreduce模式的例子

2025/6/2 15:08:22发布13次查看
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()
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product