Databricks dbutils.fs.ls 显示文件。但是,读取它们会引发 IO 错误
Databricks dbutils.fs.ls shows files. However, reading them throws an IO error
我是 运行 一个 Spark 集群,当我在 Databricks Notebook 上执行以下命令时,它给了我输出:
dbutils.fs.ls("/mnt/test_file.json")
[FileInfo(path=u'dbfs:/mnt/test_file.json', name=u'test_file.json', size=1083L)]
但是,当我尝试读取该文件时,出现以下错误:
with open("mnt/test_file.json", 'r') as f:
for line in f:
print line
IOError: [Errno 2] No such file or directory: 'mnt/test_file.json'
这可能是什么问题?非常感谢任何help/support。
为了使用本地文件 API 访问 DBFS 安装上的文件,您需要在路径前添加 /dbfs
,因此在您的情况下应该是
with open('/dbfs/mnt/test_file.json', 'r') as f:
for line in f:
print(line)
在 https://docs.databricks.com/data/databricks-file-system.html#local-file-apis 的文档中查看更多详细信息,尤其是有关限制的信息。使用 Databricks Runtime 5.5 及以下版本 有 2GB 的文件限制。在 6.0+ 中不再有这样的限制,因为 FUSE 挂载已经过优化以处理更大的文件大小。
我是 运行 一个 Spark 集群,当我在 Databricks Notebook 上执行以下命令时,它给了我输出:
dbutils.fs.ls("/mnt/test_file.json")
[FileInfo(path=u'dbfs:/mnt/test_file.json', name=u'test_file.json', size=1083L)]
但是,当我尝试读取该文件时,出现以下错误:
with open("mnt/test_file.json", 'r') as f:
for line in f:
print line
IOError: [Errno 2] No such file or directory: 'mnt/test_file.json'
这可能是什么问题?非常感谢任何help/support。
为了使用本地文件 API 访问 DBFS 安装上的文件,您需要在路径前添加 /dbfs
,因此在您的情况下应该是
with open('/dbfs/mnt/test_file.json', 'r') as f:
for line in f:
print(line)
在 https://docs.databricks.com/data/databricks-file-system.html#local-file-apis 的文档中查看更多详细信息,尤其是有关限制的信息。使用 Databricks Runtime 5.5 及以下版本 有 2GB 的文件限制。在 6.0+ 中不再有这样的限制,因为 FUSE 挂载已经过优化以处理更大的文件大小。