SequenceFile как текстовый CLI с пользовательским классом

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

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

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


person Nik    schedule 25.07.2016    source источник


Ответы (2)


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

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

how-to-parse-customwritable-from-text-in-hadoop< /а>

person Ronak Patel    schedule 25.07.2016
comment
Веселая. Я пробовал hadoop fs -text <hdfs_file> -libjars <jar>, но не пробовал сначала вариант -libjars :D - person Nik; 25.07.2016

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

Например:

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

person Binary Nerd    schedule 25.07.2016