【发布时间】:2015-10-19 19:15:53
【问题描述】:
我对 Hadoop 还很陌生,遇到了一些我无法通过 Google 找到的东西。
在 Java 版本的“HelloWorld”Hadoop 程序的字数统计中,mapper 函数接受一个键值对,这符合我对 MapReduce 工作原理的理解。据我了解,在字数统计示例中,键是行号,值是文本本身的行:
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
//Tokenize the line and print out token,1 for each
}
但是,在同一程序的 python 流示例中,python 映射器似乎没有读取密钥:
#!/usr/bin/env python
import sys
# input comes from STDIN (standard input)
for line in sys.stdin:
# remove leading and trailing whitespace
line = line.strip()
# split the line into words
words = line.split()
for word in words:
print '%s\t%s' % (word, 1)
似乎python映射器只能从标准输入读取值部分。如何在 python 映射器中获取密钥(行号)?
提前致谢!!
【问题讨论】: