好的,所以我试着运行我的程序,结果出现了这个错误:
java.lang.RuntimeException:java.lang.NoSuchMethodException:org.(..).SimpleMapReducePriceing$SimplePricingMapper。()
这意味着我必须用构造函数初始化我的映射程序,对吧?所以,我的问题是,为什么我必须这样做(因为我在任何例子中都没有见过),以及我如何以简单的方式做到这一点?我正在使用新的api,我的代码如下:
public class SimplePricingMapper
extends Mapper<Object, Text, Text, DoubleWritable>
{ public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
等等…
我看到了一个类似的问题,但我必须承认,这些答案更让我困惑。谢谢
我看不到您代码的上下文,但根据您的异常消息,您的Mapper
似乎是SimpleMapReducePricing
中的嵌入式类(或所谓的inner class
)。
Hadoop无法在没有SimpleMapReducePricing
实例的情况下实例化Mapper
,因此您应该将Mapper
类定义为静态。
public static class SimplePricingMapper
我还怀疑您的SimpleMapReducePricing
中嵌入了一个reducer,所以您也应该将其定义为静态。