如何使用hadoopmapreduce将ebcdic转换为文本

xoshrz7s  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(388)

我需要解析一个ebcdic输入文件格式。使用java,我可以阅读如下内容:

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

但是在hadoopmapreduce中,我需要通过 RecordReader 到目前为止还没有成功。
有谁能解决这个问题吗?

vohkndzv

vohkndzv1#

为什么文件在ebcdic??,它需要是???
如果只是文本数据,为什么不在从大型机/as400?发送/拉取文件时将其转换为ascii呢???。
如果文件包含二进制或cobol数字字段,则有几个选项
在大型机上将文件转换为普通文本(大型机排序实用程序擅长于此),然后发送文件并将其转换(转换为ascii)。
如果它是一个cobol文件,那么您可以查看一些开源项目https://github.com/tmalaska/copybookinputformat 或者https://github.com/ianbuss/copybookhadoop
有一些商业软件包用于将大型机cobol数据加载到hadoop中。

ekqde3dh

ekqde3dh2#

最好的方法是先将数据转换为ascii,然后再加载到hdfs。

eoigrqb6

eoigrqb63#

您可以尝试通过spark解析它,也许可以使用cobrix,它是spark的开源cobol数据源。

相关问题