从 Pyspark 中的 .TXT 文件中删除最后一个分隔符

Remove last delimeter from a .TXT file in Pyspark

我有一个从不同系统生成的 S3 文件,如下所示:

A1|~|B1|~|C1|~|D1|~|

A2|~|B2|~|C2|~|D2|~|

A3|~|B3|~|C3|~|D3|~|

A4|~|B4|~|C4|~|D4|~|

现在,在 AWS Glue Pyspark 脚本中读取此文件时,我想从文件中删除最后一个分隔符。你能告诉我怎么做吗?

问题是—— 在尝试将此 .TXT 文件转换为镶木地板时,当我将分隔符称为“|~|”时它在末尾添加了一个额外的列。发生这种情况是因为在源文件中有一个额外的 |~|每行末尾的分隔符。

这就是为什么我要删除最后一个 |~|文件中每一行的分隔符,然后将其转换为镶木地板。

代码:-

input = sc.textFile("filename.TXT").map(lambda x: x.split('|~|')) 
df=spark.createDataFrame(input,list_of_colun_names) 

您所要做的就是删除由您的 lambda 函数创建的数组的最后一个元素。

因此您可以将 lambda 函数更改为类似这样的内容。

input = sc.textFile("filename.TXT").map(lambda x: x.split('|~|')[:-1])