我如何使用python从Azure Data Lake Gen 2读取文件?

问题描述 投票:0回答:1

我有一个文件躺在 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解决这个问题?

python-3.x azure hdfs databricks azure-data-lake-gen2
1个回答
1
投票

Databricks 文档中有关于处理连接到 ADLS 的信息。此处. 根据你的环境细节和你要做的事情,有几种选择。对于我们的团队来说,我们安装了ADLS容器,这样就可以一次性设置,之后,在Databricks中工作的任何人都可以轻松访问它。

© www.soinside.com 2019 - 2024. All rights reserved.