【发布时间】:2021-11-10 15:22:47
【问题描述】:
我需要使用 MapReduce 从 txt 文件中查找所有最长的单词。 我为 mapper 和 reducer 编写了以下代码,但它将 len(words) 的整个字典显示为 Key,将单词显示为 Values。 我需要帮助编写代码以仅显示最大长度和相应单词的结果。 以下是我的代码:
"""mapper.py"""
import sys
> for line in sys.stdin:
> for word in line.strip().split():
> print ('%s\t%s' % (len(word), word))
"""reducer.py"""
> import sys results={} for line in sys.stdin:
> index, value = line.strip().split('\t')
> if index not in results :
> results[index] = value
> else :
> results[index] += ' '
> results[index] += value
*****我只是卡在这部分继续编码以获得具有相应单词的max(key)
输入文件: 和平如何开始? 和平从说对不起开始, 和平始于不伤害他人, 和平始于诚实、信任和奉献, 和平始于表现出合作和尊重。 世界和平从我开始!
预期输出: 最长的单词有 11 个字符。词是:奉献合作
【问题讨论】:
-
你的输入是什么样的?
-
输入是一个带有文本的csv文件
-
为了让我们帮助您,您有必要提供一个最小的可重现问题集,包括样本输入、预期输出、实际输出以及重现该示例所需的所有相关代码。你所提供的没有达到这个目标。请编辑您的问题以显示最小的可重现集。详情请见Minimal Reproducible Example。
-
对不起,我已经添加了@itprorh66的信息。
标签: python list dictionary mapreduce max