首页 > 解决方案 > 使用 MRJob 查找文件中单词的平均长度

问题描述

所以我试图找到文件中单词的平均长度。为此,我找到了字符和单词。我以为我可以使用组合器来计算平均值 - 但由于我对此很陌生,我得到一个“AttributeError:'generator' object has no attribute 'split'”。我不确定如何计算映射器或减速器中的平均值。非常感谢任何帮助和建议。

从 mrjob.job 导入 MRJob 类 Job(MRJob):

    def mapper(self, key, value):
        words = len(value.split())
        characters = len(value)
        yield "Characters",len(value)
        yield "Words", len(value.split())

    def combiner(self, key, value):
        average = sum(len(value.split()) / len(value))
        for word in value:
            yield "Average", sum(len(value.split()) / len(value))

    def reducer(self, key, values):
        yield key, sum(values)
        
if __name__ == '__main__':
    Job.run()

标签: pythonmrjob

解决方案


推荐阅读