映射函数很简单,它接受一个数组,并对其中的每个元素执行同样的处理。例如,下面的映射函数将数组的每个元素翻倍。

>>> arr1 = [1, 2, 3, 4, 5]
>>> arr2 = map(lambda x: 2 * x, arr1)
[2, 4, 6, 8, 10]

arr2包含[2, 4, 6, 8, 10]:将数组arr1的每个元素都翻倍!将元素翻倍的速度非常快,

但如果要执行的操作需要更长的时间呢?请看下面的伪代码。

>>> arr1 = # A list of URLs
>>> arr2 = map(download_page, arr1)

在这个示例中,你有一个URL清单,需要下载每个URL指向的页面并将这些内容存储在数组arr2中。对于每个URL,处理起来都可能需要几秒钟。如果总共有1000个URL,可能耗时几小时!

如果有100台计算机,而map能够自动将工作分配给这些计算机去完成就好了。这样就可同时下载100个页面,下载速度将快得多!这就是MapReduce中“映射”部分基于的理念。

results matching ""

    No results matching ""