包含comp类型的ebcdic到ascii

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

我已经看到许多工具,如syncsort、informatica等,它们足够有效地将ebcdic大型机文件转换为ascii。由于我们的公司规模很小,不想投资任何工具,我有一个挑战,将ebcdic大型机文件转换为ascii。上游是大型机,我正在将整个数据迁移到hdfs中,但由于hdfs的效率不足以处理大型机,我被要求使用spark/java例程转换这些大型机ebcdic文件。我知道当文件被导出时,文件被转换成ascii,但是压缩十进制,comp/comp3不会被转换。我需要编写一个逻辑来将这些大型机ebcdic部分转换的文件转换为ascii,这样我们就可以在hadoop中进行进一步的处理。因为我在这个网站是新的,甚至不能添加我的样本ebcdic文件。请您考虑下面的示例文件内容,其中包含ascii以及垃圾邮件字符。下面包含一些垃圾邮件,这些垃圾邮件位于薪资字段之后,即部门字段,它具有comp数据类型。下面是emp.txt文件
101甘尼什10000á?
1022万€
1034万纳格什€
下面是一本复印本

  1. 01 EMPLOYEE-DETAILS.
  2. 05 EMP-ID PIC 9(03).
  3. 05 EMP-NAME PIC X(10).
  4. 05 EMP-SAL PIC 9(05).
  5. 05 DEPT PIC 9(3) COMP-3.
vnzz0bqm

vnzz0bqm1#

java中有一个库,可以与spark一起使用,叫做jrecord,用于将ebcdic的二进制文件转换为ascii。
你能从这家伙身上找到的密码
这可以与scala的函数集成 newAPIHadoopFile 在Spark中运行。这段代码是一个hadoop代码,但可以与spark一起使用。

cuxqih21

cuxqih212#

您可以使用cobrix,它是spark的cobol数据源。它是开源的。
您可以使用spark加载文件、解析记录并以您想要的任何格式存储它们,包括纯文本,这似乎正是您要查找的内容。
免责声明:我为absa工作,我是这个库的开发人员之一。我们的重点是1)易用性,2)性能。

2w3kk1z5

2w3kk1z53#

还有这个选项(它也使用jrecord):
https://wiki.cask.co/display/ce/plugin+for+cobol+copybook+reader+-+fixed+length
它基于copybookhadoop,看起来像是thiago提到的copybookinputformat的克隆。
从文件中可以看出:
此示例从本地二进制文件“file:///home/cdap/dtar020\u fb.bin”读取数据,并使用文本区域“cobol copybook”中给定的模式对其进行解析。它将删除字段“dtar020 date”,并使用文本区域中指定的模式生成结构化记录。

  1. {
  2. "name": "CopybookReader",
  3. "plugin": {
  4. "name": "CopybookReader",
  5. "type": "batchsource",
  6. "properties": {
  7. "drop" : "DTAR020-DATE",
  8. "referenceName": "Copybook",
  9. "copybookContents":
  10. "000100* \n
  11. 000200* DTAR020 IS THE OUTPUT FROM DTAB020 FROM THE IML \n
  12. 000300* CENTRAL REPORTING SYSTEM \n
  13. 000400* \n
  14. 000500* CREATED BY BRUCE ARTHUR 19/12/90 \n
  15. 000600* \n
  16. 000700* RECORD LENGTH IS 27. \n
  17. 000800* \n
  18. 000900 03 DTAR020-KCODE-STORE-KEY. \n
  19. 001000 05 DTAR020-KEYCODE-NO PIC X(08). \n
  20. 001100 05 DTAR020-STORE-NO PIC S9(03) COMP-3. \n
  21. 001200 03 DTAR020-DATE PIC S9(07) COMP-3. \n
  22. 001300 03 DTAR020-DEPT-NO PIC S9(03) COMP-3. \n
  23. 001400 03 DTAR020-QTY-SOLD PIC S9(9) COMP-3. \n
  24. 001500 03 DTAR020-SALE-PRICE PIC S9(9)V99 COMP-3. ",
  25. "binaryFilePath": "file:///home/cdap/DTAR020_FB.bin",
  26. "maxSplitSize": "5"
  27. }
  28. }
  29. }
展开查看全部

相关问题