PySpark读取定长格式文件并关联批次表头与明细记录的实现咨询
PySpark读取定长格式文件并关联批次表头与明细记录的实现咨询
我有一个定长格式的文本文件,内容如下:
K57 details 1234 K58 abcdefghijklmnopqrstuvwxyz 0123456789 K58 abcdefghijklmnopqrstuvwxyz 0123456789 K58 abcdefghijklmnopqrstuvwxyz 0123456789 K57 details 5678 K58 abcdefghijklmnopqrstuvwxyz 9876543210 K58 abcdefghijklmnopqrstuvwxyz 9876543210 K58 abcdefghijklmnopqrstuvwxyz 9876543210 ..... .....
其中K57是每个批次的表头记录,K58是对应批次的明细记录。文件中会有多个批次,每个批次都是先出现一条K57表头记录,后面跟着多条K58明细记录。
我需要将每个K58记录提取出对应字段,同时关联上所属批次的K57表头信息,最终输出格式如下:
+----------+------------+------------+ |K57_detail|K58_detail_1|K58_detail_2| +----------+------------+------------+ |1234 |abcdef |01234 | |1234 |abcdef |01234 | |1234 |abcdef |01234 | |5678 |abcdef |98765 | |5678 |abcdef |98765 | |5678 |abcdef |98765 | +----------+------------+------------+
我知道可以用PySpark的substring()函数从每行提取需要的值,但目前的难点在于如何把对应批次的K57表头信息关联到该批次下的每一条K58明细记录上。如果有实现方法的话,恳请帮忙解答,提前感谢!
备注:内容来源于stack exchange,提问作者Suraj Pandey
相关产品推荐
相关产品推荐

