有一些解决方案可用于读取EDCDIC文件,例如 - https://github.com/rbheemana/Cobol-to-Hive,但是当EDCDIC文件包含具有不等偏移长度的行时,这会失败。
我写了MapReduce作业来读取EBCDIC文件并通过基于偏移值读取每一行来转换为CSV / Parquet,因此所有行都是固定长度,以下是示例代码
Configuration conf = new Configuration();
conf.setInt(FixedLengthInputFormat.FIXED_RECORD_LENGTH, 100);
Job job = Job.getInstance(conf);
job.setInputFormatClass(FixedLengthInputFormat.class);
当输入EBCDIC文件不能被偏移(记录)长度整除时,这也会失败。
有什么方法可以阅读&将带有页眉和页脚的EBCDIC文件转换为ASCII文件?
答案 0 :(得分:0)
我对hadoop了解不多,而且假设该文件来自IBM Mainframe(Z-OS)。另外看https://github.com/rbheemana/Cobol-to-Hive,看起来它可以处理VB文件,所以应该有办法。
如果文件是大型机上的VB文件,则每条记录都有一个记录描述符Word ( RDW )。默认情况下,某些文件传输功能会删除 RDW 。你可能会想要RDW。 Certaily JRecord可以使用它
可能的解决方案可能包括:
答案 1 :(得分:0)