pyspark - PYSPARK - 读取、转换和拆分 EBCDIC Mainframe 文件到 DataFrame
问题描述
我们有一个已加载到Hadoop HDFS系统中的EBCDIC 大型机格式文件。该文件也具有相应的COBOL 结构。我们必须从 HDFS 读取这个文件,将文件数据转换为ASCII 格式,并需要根据其 COBOL 结构将数据拆分为Dataframe 。我尝试了一些似乎不起作用的选项。任何人都可以向我们推荐一些行之有效的或可行的方法。
解决方案
对于 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()
推荐阅读
- r - 如何删除R中单词之间的空格?
- javascript - 赛普拉斯单击一组元素但不会永远循环
- r - 根据列值从 R 中的数据框中删除行
- c# - 日期格式:方法“ToString”没有重载需要 1 个参数
- javascript - 如何在 nodejs/lambda - api 网关中保存应用程序状态中的变量值?
- kubernetes - 即使就绪探测失败,部署也能完成吗
- axios - CSRF 的拦截器?
- react-native - 尝试在苹果设备中使用 Google 联合登录时反应本机 Expo 错误
- excel - 从 MS Excel 中的 STOCKHISTORY 函数获取最近 25 天的最低价
- javascript - 如何在加载时模拟移动设备上的点击事件