读取多个固定宽度文件并逐个处理

时间:2018-03-15 04:56:22

标签: python apache-spark pyspark iteration

我在HDFS目录中有多个固定宽度的文件,我想逐个读取这些文件。我在pyspark开发的代码正在处理单个文件。

代码: -

    *df = sqlContext.read.text("/user/XXX/PBM_TAIL/FILE.PROD.TM234908_TAIL.txt")

*parexp1 = df.select(
        df.value.substr(1,2).alias('TLR_RECORD_TYPE'),
        df.value.substr(3,10).cast('integer').alias('TLR_TOTAL_RECORD_COUNT'),
        df.value.substr(13,12).alias('TLR_TOTAL_NET_AMOUNT_DUE')
       )*

    parexp1.registerTempTable("parexp2")
    parexp3 = sqlContext.sql("""
                                select TLR_RECORD_TYPE,
                                       TLR_TOTAL_RECORD_COUNT,
                                       TLR_TOTAL_NET_AMOUNT_DUE,
                                       reverse(split(reverse(input_file_name()),'/')[0]) as File_Name,
                                       udfFormatAmt(TLR_TOTAL_NET_AMOUNT_DUE) as TLR_TL_REC_CNT_CNV
                                       from parexp2 

                                            """)*

如何将上面的代码转换为逐个读取多个文件并按数据帧单独处理。我非常感谢你的帮助

0 个答案:

没有答案