Не удается использовать XmlInputFormat, расширяет TextInputFormat в Java - PullRequest
1 голос
/ 15 марта 2012

Я пытаюсь сделать WordCount, используя Hadoop.Я хочу использовать XmlInputFormat.class для разделения файловой базы по тегу XML.XmlInputFormat.class равен здесь

XmlInputFormat.class является расширением из TextInputFormat.class

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

Показывает ошибку

Метод setInputFormatClass (Class) в типе Job не применим для аргументов (Class)

Но все нормально, когда я использую

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

Почему можномы используем удлинители?Или я что-то не так сделал?

Ответы [ 3 ]

0 голосов
/ 29 марта 2012

Я думаю, что учебник по hadoop, использующий библиотеку mapred, устарел и должен взглянуть на:

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

Я мог бы успешно запустить XMLInputFormat после небольшого изменения кода выше.


Пожалуйста, игнорируйте этот ответ.Я думаю, причина в том, что я использовал устаревшую версию карты Reduce, в которой используется mapred. *.

У меня была такая же проблема, и она была решена, когда я изменил один из импортов:

From:import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;

To: импортировать org.apache.hadoop.mapred.TextInputFormat;

0 голосов
/ 17 августа 2014

Возможно, вы импортируете неправильный класс XmlInputFormat.class в своем коде.то же самое случилось со мной с TextInputFormat.class, чтобы увидеть, что я использовал неправильный импорт класса, который автоматически вытянул Eclipse.Правильный класс для импорта был:

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

0 голосов
/ 16 марта 2012

Это похоже на проблему с вашей версией Hadoop. Проверяли ли вы, что используемый вами класс XMLInputFormat действительно подходит для вашей версии Hadoop?

...