Hadoop映射器构造函数,何时以及如何



好的,所以我试着运行我的程序,结果出现了这个错误:

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,所以您也应该将其定义为静态。

相关内容

  • 没有找到相关文章

最新更新