如何解决Hadoop Streaming 为每个字数记录提供 null
我编写了一个用于 Hadoop Streaming 的简单字数统计程序。 我在本地测试了该程序,它给出了预期的结果。 然而,使用 Hadoop Streaming 时,它可以区分所有单词,但为计数提供 null。
这是用于字数映射器的代码:
#!/usr/bin/python3
import sys
for line in sys.stdin:
data_list = line.split("\t")
if (len(data_list) >= 3):
if ('actor' in str(data_list[3])):
print data_list[0]
这里是减速器:
#!/usr/bin/python3
import sys
word_dict = {}
for line in sys.stdin:
v = line.strip()
if word_dict.has_key(v):
word_dict[v] += 1
else:
word_dict[v] = 1
print 'tconst' + "\t" + 'actors'
for key in word_dict:
print str(key) + "\t" + str(word_dict[key])
这是我使用的命令
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
-file mapper.py -mapper 'python mapper.py' \
-file reducer.py -reducer 'python reducer.py' \
-input input/datasource1 \
-output output_mr3 \
-outputformat org.apache.hadoop.mapred.SequenceFileOutputFormat\
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。