04-python进阶-map&reduce
Map --映射
Reduce -- 归纳
将大数据标准化的处理
Map 拆封任务,Reduce将结果合并
这样是不是能够将很多计算机组成一台超级计算机呢?
一些问题:如果任务本身就很复杂,那么拆解任务本身就是一个很打的难题。
python 在2.6 的时候 增加了 map reduce函数
例如我们可以这样写
import urllib2 urls = [ 'https://www.baidu.com', 'http://www.douban.com' ] resurt = map(urllib2.urlopen,urls) #等价于 resurt = [] for url in urls: resurt.append(urllib2.urlopen(url))
当然我们也可以加上多线程的
import urllib2 from multiprocessing.dummy import Pool as ThreadPool urls = [ 'https://www.baidu.com', 'http://www.douban.com' ] def get_html(url): res = urllib2.urlopen(url) html = res.read() return html pool = ThreadPool(4) results = pool.map(get_html,urls) pool.close() pool.join() print results