public static class Reduce extends Reducer<Text, Text, Text, Text>
{
private Text txtReduceOutputKey = new Text("");
private Text txtReduceOutputValue = new Text("");
public void reduce(Text key, Iterator<Text> values, Context context) throws IOException, InterruptedException
{
//some code;
}
}
它没有给出任何错误。我能够访问类,因为我能够启动这些变量 txtReduceOutputKey
以及 txtReduceOutputValue
. 但是 reduce
方法在执行时被忽略。所以我无法运行代码//上面方法中的一些代码。我也在使用下面的软件包。
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.Job;
你知道我该怎么修吗?
3条答案
按热度按时间s5a0g9ez1#
这些问题的产生有以下几个原因:
不覆盖
reduce()
方法-最好用override
正如前面的评论中提到的,忘记在驱动程序代码中设置reducerinkz8wg92#
请确保在驱动程序代码中设置了reducer类。例如:-
bprjcwpo3#
那是因为
Iterator
. 它应该被替换为Iterable
. 谢谢您。