gpt4 book ai didi

java - 按长度对单词进行分组的 Reducer 代码

转载 作者:可可西里 更新时间:2023-11-01 16:25:12 24 4
gpt4 key购买 nike

在 MapReduce 程序中,Reducer 方法将 Mapper 的输入作为“Words”及其长度。

 ex.input :-
Hi -2
how - 3
are -3
you - 3
? - 1

现在我需要以这样一种方式编写 Reducer,它通过对“字长”进行分组来提供输出,并且所有字都根据字长归入一个类别,如下所示

ex. Output :-
1 - [?]
2 - [hi]
3 - [how, are, you]

这是我的 Mapper 程序:

public void map(LongWritable key, Text values, OutputCollector<Text, IntWritable> Output, Reporter arg3) throws IOException {
String s = values.toString();

for (String word : s.split(" ")) {
if (word.length() > 0 ) {
Output.collect(new Text(word), new IntWritable(word.length()));
}

}
}

Reduce 程序如何?

最佳答案

如果你想让你的 reducer 按长度分组,你必须让映射器发出长度作为键,单词作为值,因此而不是:

     Hi -2
how - 3
are -3
you - 3
? - 1

发出

     2 - Hi
3 - how
3 - are
3 - you
1 - ?

然后,您已经将准备好的结果作为 reducer 的输入。根据您使用的系统,您可以完全关闭 reducer 或使用简单的身份函数。

关于java - 按长度对单词进行分组的 Reducer 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36110634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com