问题描述
我编写了一个用于 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 (将#修改为@)