【发布时间】:2018-03-16 15:55:07
【问题描述】:
我是 python 编程的新手,所以如果我问一些容易解决的问题,请提前原谅。我想使用MapReduce 处理具有一些值的csv 文件,并且输出必须返回最大值。这是我到目前为止编写的脚本:
from mrjob.job import MRJob
class MRWordCounter(MRJob):
def mapper(self, key, line):
for word in line.split(','):
yield 'MAXIMUM VALUE IN FILE:',int(word)
def reducer(self, word, occurrences):
yield word, max(occurrences)
if __name__ == '__main__':
MRWordCounter.run()
现在,脚本工作正常,它映射并减少到最大值并将其打印为输出,但我认为我使用 yield 'MAXIMUM VALUE IN FILE:' 实现它的方式是不正确的,因为映射器总是将该字符串发送到减速器.有人可以确认这是否是实施它的错误方法并推荐我如何解决它吗?
【问题讨论】:
标签: python hadoop mapreduce max mrjob