【问题标题】:Can not use the XmlInputFormat extends TextInputFormat in Java不能在 Java 中使用 XmlInputFormat 扩展 TextInputFormat
【发布时间】:2012-03-31 16:16:27
【问题描述】:

我正在尝试使用 Hadoop 进行 WordCount。我想使用 XmlInputFormat.class 根据 XML 标签拆分文件。 XmlInputFormat.class 是here

XmlInputFormat.class 扩展自 TextInputFormat.class

 Job job = new Job(getConf());
 job.setInputFormatClass(XmlInputFormat.class);

显示错误

类型Job中的setInputFormatClass(Class)方法不适用于参数(Class)

但是我用的时候没问题

Job job = new Job(getConf());
job.setInputFormatClass(TextInputFormat.class);

为什么我们不能使用extends呢?还是我做错了什么?

【问题讨论】:

    标签: java hadoop extends word-count


    【解决方案1】:

    这似乎是您的 Hadoop 版本的问题。您是否检查过您使用的 XMLInputFormat 类实际上是否适合您的 Hadoop 版本?

    【讨论】:

      【解决方案2】:

      我认为使用mapred库的hadoop教程已经过时了,应该看看:

      http://wiki.apache.org/hadoop/WordCount

      对上面的代码稍作修改,就可以成功运行XMLInputFormat了。


      请忽略此答案。我认为原因是因为我使用了已弃用的 map reduce 版本,它使用了 mapred。*。

      我遇到了同样的问题,当我修改其中一个导入时它已经解决了:

      来自: 导入 org.apache.hadoop.mapreduce.lib.input.TextInputFormat;

      到: 导入 org.apache.hadoop.mapred.TextInputFormat;

      【讨论】:

        【解决方案3】:

        可能是您在代码中导入了错误的 XmlInputFormat.class。 TextInputFormat.class 也发生在我身上,看到我使用了 eclipse 自动退出的错误的类导入。要导入的正确类是:

        org.apache.hadoop.mapreduce.lib.input.TextInputFormat;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-11
          • 2010-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-31
          • 1970-01-01
          相关资源
          最近更新 更多