xj_28cm 2021-04-06 18:40 采纳率: 60%
浏览 92
已采纳

如何用python进行mapreduce编写统计单词所在行?

编写一个地图诱导程序,该程序将包含逗号分离单词和输出的 CSV 文件作为输入,每个单词的行都显示在单词中。

例如:

goat,chicken,horse

cat,horse

dog,cat,sheep

buffalo,dolphin,cat

sheep

相应的输出如下:

"buffalo" ["buffalo,dolphin,cat"]

"cat" ["buffalo,dolphin,cat", "cat,horse", "dog,cat,sheep"]

"chicken" ["goat,chicken,horse"]

"dog" ["dog,cat,sheep"]

"dolphin" ["buffalo,dolphin,cat"]

"goat" ["goat,chicken,horse"]

"horse" ["cat,horse", "goat,chicken,horse"]

"sheep" ["dog,cat,sheep", "sheep"]

代码没写完,思路如下:

from mrjob.job import MRJob


from mrjob.step import MRStep


import csv


 


class part2(MRJob):


 


    def steps(self):


        return [MRStep(mapper=self.mapper, reducer=self.reducer)]


        #return [MRStep(mapper=self.mapper)]


 


 


    def mapper(self, key, document):


        for word in document.split(','):


 


            yield word, 1


 


 


 


 


    def reducer(self, word, line):



 


         yield word, line


 


 


 


part2.run()
  • 写回答

2条回答 默认 最新

  • ProfSnail 2021-04-07 23:37
    关注
    from mrjob.job import MRJob
    class FrequencyCount(MRJob):
    	def mapper(self, _, line):
    		words = line.split(',')
    		for word in words:
    			yield (word, line)
    
    	def reducer(self, key, values):
    		lines = []
    		for line in values:
    			lines.append(line)
    		yield key, lines
    
    if __name__ == '__main__':
    	FrequencyCount.run()

    亲测有效~~如果有其他问题,欢迎私信与我交流~

    如果问题得到解决,要记得采纳一手呀~ 

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 有没有能解决微信公众号,只能实时拍照,没有选择相册上传功能,我不懂任何技术,,有没有给我发个软件就能搞定的方法
  • ¥15 求做一个除草机器人的电路原理图。赏钱可议
  • ¥15 Pythontxt文本可视化
  • ¥15 如何基于Ryu环境下使用scapy包进行数据包构造
  • ¥15 springboot国际化
  • ¥15 搭建QEMU环境运行OP-TEE出现错误
  • ¥15 Minifilter文件保护
  • ¥15 有限元软件终止时间超过设定值
  • ¥15 onvif框架引用一直报错
  • ¥50 C#和C++混合编程,使用CLR托管,报错System.Runtime.InteropServices.SEHException