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

  

posted @ 2017-07-25 23:23  nerdlerss  阅读(140)  评论(0编辑  收藏  举报