【发布时间】:2021-12-28 11:05:51
【问题描述】:
目标是从 ADLS 挂载点将文件作为 字节字符串 在 Databricks 中读取。
确认 ADLS 挂载点
首先,使用dbutils.fs.mounts()确认有以下内容:
... MountInfo(mountPoint='/mnt/ftd', source='abfss://ftd@omitted.dfs.core.windows.net/', encryptionType=''), ...
确认文件存在
该文件名为TruthTable.csv,已使用以下命令确认其下落:
dbutils.fs.ls('/mnt/ftd/TruthTable.csv')
返回:
[FileInfo(path='dbfs:/mnt/ftd/TruthTable.csv', name='TruthTable.csv', size=156)]
确认文件的可读性
为了确认可以读取文件,我们可以运行以下 sn-p。
filePath = '/mnt/ftd/TruthTable.csv'
spark.read.format('csv').option('header','true').load(filePath)
成功返回
DataFrame[p: string, q: string, r: string, s: string]
问题
由于目标是能够以字节串的形式读取文件,所以下面的 sn-p 应该是成功的,然而,它不是。
filePath = '/mnt/ftd/TruthTable.csv'
with open(filePath, 'rb') as fin:
contents = fin.read()
print(contents)
执行以下 sn-p 输出:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/ftd/TruthTable.csv'
Databricks 团队在以下链接 [https://docs.databricks.com/data/databricks-file-system.html#local-file-apis][https://docs.databricks. com/data/databricks-file-system.html#local-file-apis] 仅适用于在 /tmp/ 文件夹中找到的文件,但是,要求是直接从挂载点读取文件。
【问题讨论】:
标签: python pyspark databricks azure-databricks