0

我有一个从不同系统生成的 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) 
4

1 回答 1

1

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

所以你可以把你的 lambda 函数改成这样。

input = sc.textFile("filename.TXT").map(lambda x: x.split('|~|')[:-1]) 
于 2021-04-17T15:05:24.430 回答