Как мне конвертировать EBCDIC в TEXT, используя Hadoop Mapreduce

Мне нужно проанализировать формат входного файла EBCDIC. Используя Java, я могу прочитать это, как показано ниже:

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

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

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

3 ответа

Вы можете попытаться разобрать его через Spark, возможно, используя Cobrix, который является источником данных COBOL с открытым исходным кодом для Spark.

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

Почему файл в EBCDIC???, он должен быть???

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

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

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