如何定义 ebcdic 文件的记录结构?

How do I define the record structure of ebcdic file?

我在 hdfs 中有 ebcdic 文件我想将数据加载到 spark 数据帧,处理它并将结果加载为 orc 文件,我发现有一个开源解决方案是 cobrix cobrix,它允许从 ebcdic 文件中获取数据,但开发人员必须提供一个 copybook 文件,它是一个模式定义。

我的 ebcedic 文件的几行显示在附图中。 我想获取ebcdic文件copybook的格式,本质上我想读取vin他的长度是17,vin_data长度为 3 最后 vin_val 长度为 100.

how to define a copybook file of ebcdic data?

你不知道。

copybook可以作为记录定义(=如何存储数据),它与可能存储在其中的数据编码无关。

这留下了问题“我如何定义记录结构?”

您需要字段的数量、它们的长度和类型(可能不仅仅是 USAGE DISPLAY),然后只需用一些奇特的名称来定义它。理想情况下,您只需从写入文件的 COBOL 程序中获取原始记录定义,如果还没有,则将其放入副本中,然后使用它。

您的 link 有 samples 实际显示了字帖的样子,如果您在定义上遇到困难,请使用您定义的字帖编辑您的问题,我们也许能够帮助。

根据你在问题中的评论,并查看输入文件,你可以从这个开始。

01  VIN-RECORD.
    05  VIN                 PIC X(17).
    05  VIN-COUNT           PIC S9(5) COMP-3.
    05  VIN-VALUE           PIC X(100).

我猜测第二个字段是 COMP-3,基于六个示例都以 C 字节结尾。这表示正 COMP-3 值。 D 字节将是一个负的 COMP-3 值。 F 字节表示无符号 COMP-3 值。

第三个字段是可变长度的,右边用空格填充。