我有一个文件位于 Azure Data Lake gen 2 文件系统中。我想读取文件的内容并进行一些低级别的更改,即从记录中的几个字段中删除几个字符。更明确地说 - 有些字段也有最后一个字符作为反斜杠 ('\')。并且由于该值包含在文本限定符 ("") 中,因此字段值会转义 '"' 字符并继续包含下一个字段的值作为当前字段的值。
例如,文本文件包含以下 2 条记录(忽略标题)
-------------------------------------------------------------------
Name | Address | Description | Remark
-------------------------------------------------------------------
"ABC" | "UK" | "descrption 1" | "remark1"
"DEF" | "USA" | "description2\" | "remark2"
当我在 pyspark 数据框中阅读上述内容时,它会读取如下内容:
-------------------------------------------------------------------
Name | Address | Description | Remark
-------------------------------------------------------------------
"ABC" | "UK" | "descrption 1" | "remark1"
"DEF" | "USA" | "description2|remark2" | null
因此,我的目标是使用 python 中的常用文件处理来读取上述文件,例如以下文件,并为那些具有该字符的记录删除“\”字符并将行写回新文件。
f = open("test.txt",'r',encoding = 'utf-8')
//read the lines
//remove the '\' character
//write the line back
但由于该文件位于 ADLS gen 2 文件系统(类似 HDFS 的文件系统)中,因此通常的 python 文件处理在这里不起作用。ADLS gen 2 文件系统文件处理的出路是什么?
或者有没有办法使用火花数据框 API 来解决这个问题?