Map 的作用,即数据的映射,用于把一组键值对映射成另一组新的键值对。
白话就是对数据按照一定的格式进行归整。
举个例子,有一遍文章,需要对文章中出现过的相同的单词进行归类,期望结果如下:
将map的输出作为reduce的输入的过程就是shuffle了,这个是mapreduce优化的重点地方。

1
2
{"1", "are" : 1}
{"1", "are" : 1}
1
2
3
4
5
6
#encodeing=utf-8
import sys
for line in sys.stdin:
ss = line.strip().split(' ')
for word in ss:
print '\t'.join([word.strip(), '1'])

测试数据: THE_MAN_OF_PROPERTY.txt,这里存一篇网上随机找的一篇英文长篇文章。

执行命令,并打印结果:

1
cat `THE_MAN_OF_PROPERTY.txt`  | `python map.py` | `sort -k 1  > 1.txt`

结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
to	1
to 1
to 1
today 1
tool 1
topic 1
two 1
two 1
···
variants 1
variants 1
variants 1
···