我有一个文件躺在 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文件系统的文件处理,有什么办法?
还是有办法用spark数据框架API解决这个问题?
Databricks 文档中有关于处理连接到 ADLS 的信息。此处. 根据你的环境细节和你要做的事情,有几种选择。对于我们的团队来说,我们安装了ADLS容器,这样就可以一次性设置,之后,在Databricks中工作的任何人都可以轻松访问它。