Python mrjob组合器不工作
简单映射合并reduce程序:将列1映射为值列3,在同一键的每个映射器输出中追加Python mrjob组合器不工作,python,mapreduce,mrjob,Python,Mapreduce,Mrjob,简单映射合并reduce程序:将列1映射为值列3,在同一键的每个映射器输出中追加'+',并在同一键的reduce输出后追加'-。input_1和input_2这两个文件都包含 a 1 2 3 a 4 5 6 代码是 from mrjob.job import MRJob import re import sys class MRWordFreqCount(MRJob): def mapper(self, _, line): line=re.sub("\s\s+","
'+'
,并在同一键的reduce输出后追加'-
。input_1
和input_2
这两个文件都包含
a 1 2 3
a 4 5 6
代码是
from mrjob.job import MRJob
import re
import sys
class MRWordFreqCount(MRJob):
def mapper(self, _, line):
line=re.sub("\s\s+"," ",line)
s1=line.split()
yield(s1[0],s1[2])
def combiner(self, accid, eventid):
s="+"
yield (accid, s.join(eventid))
def reducer(self, accid, eventid):
s="-"
yield (accid, s.join(eventid))
if __name__ == '__main__':
MRWordFreqCount.run()
执行后,python C:\Python27\map1.py C:\Python27\input_1.txt C:\Python27\input_2.txt
结果为
“a”2-2-5-5“
。为什么组合器不工作并追加“+”。预期输出为:“a”“2+5-2+5”
。谢谢