给定一个csv文件,其中每行包含一组数字,我想写一个map reduce程序,它确定文件中所有数字的最大数量。 让我们说csv文件是 3,4 5,6 脚本应该返回6。
from mrjob.job import MRJob
class MRWordCounter(MRJob):
def mapper(self, key, line):
for word in line.split():
yield word, 1
def reducer(self, word, occurrences):
yield word, sum(occurrences)
if __name__ == '__main__':
MRWordCounter.run()
现在我找到的这个脚本会返回出现的情况,但如果每行中有多个值,则不起作用。我如何解析csv文件中的所有数据并返回最大值?
更新:
所以我试图解析为测试的输入文件是这样的:
1,1,1,1
2
3
4
5
6
将line.split()更改为line.split(",")后,它会正常计算所有出现次数。