首页 > 解决方案 > PYSPARK - 读取、转换和拆分 EBCDIC Mainframe 文件到 DataFrame

问题描述

我们有一个已加载到Hadoop HDFS系统中的EBCDIC 大型机格式文件。该文件也具有相应的COBOL 结构。我们必须从 HDFS 读取这个文件,将文件数据转换为ASCII 格式,并需要根据其 COBOL 结构将数据拆分Dataframe 。我尝试了一些似乎不起作用的选项。任何人都可以向我们推荐一些行之有效的或可行的方法。

标签: pysparkasciipyspark-sqlmainframepyspark-dataframes

解决方案


对于 python,请查看 Copybook 包 ( https://github.com/zalmane/copybook )。它支持 Copybook 的大多数功能,包括 REDEFINES 和 OCCURS 以及各种 PIC 格式。

pip install copybook
root = copybook.parse_file('sample.cbl')

要解析为 PySpark 数据帧,您可以使用扁平化的字段列表并使用 UDF 根据偏移量进行解析:

offset_list = root.to_flat_list()

免责声明:我是https://github.com/zalmane/copybook的维护者


推荐阅读