重写 reduce 方法
Override the reduce method
我是 MapReduce 的初学者,我遇到了一个问题,我似乎找不到解决方案。
一开始,最初的问题是我无法调用 reducer(现在仍然如此,我正在尝试找出原因)。所以现在,经过一些研究,我试图为 reduce 方法添加一个 @Override 注释,但我不能,因为我有以下错误:“The method reduce ... must override or implement a超类型方法"
我不知道它是否会解决主要问题,但我不知道为什么我不能重写该方法,因为我看不到代码遗漏了什么。
您可以找到以下代码:
public class RSJReducer extends Reducer<Text, Text, Text, Text> {
@Override
public void reduce(Text paramKey, Iterator<Text> paramValue, Context context) throws IOException, InterruptedException {
}
提前致谢!
方法签名错误。应该是:
reduce(KEYIN key, Iterable<VALUEIN> values, org.apache.hadoop.mapreduce.Reducer.Context context)
所以你有 Iterator
而不是 Iterable
。
查看 Java 文档 here。
我是 MapReduce 的初学者,我遇到了一个问题,我似乎找不到解决方案。 一开始,最初的问题是我无法调用 reducer(现在仍然如此,我正在尝试找出原因)。所以现在,经过一些研究,我试图为 reduce 方法添加一个 @Override 注释,但我不能,因为我有以下错误:“The method reduce ... must override or implement a超类型方法" 我不知道它是否会解决主要问题,但我不知道为什么我不能重写该方法,因为我看不到代码遗漏了什么。
您可以找到以下代码:
public class RSJReducer extends Reducer<Text, Text, Text, Text> {
@Override
public void reduce(Text paramKey, Iterator<Text> paramValue, Context context) throws IOException, InterruptedException {
}
提前致谢!
方法签名错误。应该是:
reduce(KEYIN key, Iterable<VALUEIN> values, org.apache.hadoop.mapreduce.Reducer.Context context)
所以你有 Iterator
而不是 Iterable
。
查看 Java 文档 here。