2016-01-19 15 views
0

Мне нужно проанализировать формат входного файла EBCDIC. Использование Java, я могу читать его, как показано ниже:Как преобразовать EBCDIC в TEXT с помощью Hadoop Mapreduce

InputStreamReader rdr = new InputStreamReader(new FileInputStream("/Users/rr/Documents/workspace/EBCDIC_TO_ASCII/ebcdic.txt"), java.nio.charset.Charset.forName("ibm500")); 

Но в Hadoop MapReduce, мне нужно, чтобы разобрать с помощью RecordReader, который не работал до сих пор.

Может ли кто-нибудь решить эту проблему?

+0

Вам необходимо преобразовать его в ASCII, и вы уже это делаете. Ваш вопрос остается неясным. – EJP

ответ

0

Лучшее, что вы можете сделать, это сначала преобразовать данные в ASCII, а затем загрузить в HDFS.

0

Почему файл находится в EBCDIC ???, это необходимо?

Если это просто Текст данных, почему бы не превратить ее в ASCII когда вы отправить/толкай этот файл с мэйнфреймов/AS400 ???.

Если файл содержит двоичные или Cobol числовые поля, то у вас есть несколько вариантов

  1. Преобразовать файл в обычный текст на ЭВМ (Утилита мэйнфреймов Сортировка хороша в этом), а затем отправить файл и конвертировать это (к ascii).
  2. Если это файл Cobol, Есть некоторые проекты с открытым исходным кодом можно посмотреть на https://github.com/tmalaska/CopybookInputFormat или https://github.com/ianbuss/CopybookHadoop
  3. Существуют коммерческие пакеты для загрузки данных мэйнфреймов Cobol Into Hadoop.