python - 使用 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()
解决方案
推荐阅读
- javascript - 根据条件过滤数组的最佳方法
- list - 获取可变列表
> 从列表 - > 在科特林
- c++ - 如何使用 C++ 向 linux 邮件程序提供输入?
- json - 如何在 WADL 文件中指定 JSON 参数?
- python - 我该如何处理这个 python 测试?
- ios - 适用于支付解决方案的 iOS NFC 通行证
- python - 使用过滤器的 Keras 模型窗口滑动预测
- javascript - ReferenceError:在初始化之前无法访问“trainingID”
- html - 如何在我的 Django 项目中分解长词?
- flutter - 颤振:类型“(动态)=>动态”不是“测试”类型“(书)=>布尔”的子类型