2016-07-25 5 views
1

У меня есть файл HDFS в формате SequenceFile. Ключ Text, и значение представляет собой собственный сериализуемый класс (скажем) MyCustomClass. Я хочу прочитать этот файл с помощью команды hadoop fs -text, но он не работает, поскольку hadoop не знает, что такое определение MyCustomClass.SequenceFile как текстовый CLI с пользовательским классом

Я также пробовал команду hdfs dfs - text, но получил тот же ответ назад. Использование hadoop2.

Есть ли способ указать класс (например, через банку, например, -cp myjar.jar)?

ответ

0
hadoop fs -libjars my-lib.jar -text output-dir/part-r-* 

Это будет читать в пар файл последовательности ключ/значение и вызвать ToString() на обоих объектах, вкладка отделяя их при выводе на стандартный вывод. В -libjars определяет, где Hadoop может найти свой пользовательский ключ/значение классы

how-to-parse-customwritable-from-text-in-hadoop

+0

Смешной. Я попробовал 'hadoop fs -text -libjars ', но сначала не попробовал опцию '-libjars': D – Nik

1

Вы можете добавить банку, содержащую пользовательский класс для записи, используя -libjars.

Например:

hadoop fs -libjars <JAR>.jar -text <DIR>

Смежные вопросы