Databricks dbutils.fs.ls显示文件。但是,读取它们会引发IO错误

Sai*_*ins 1 pyspark databricks

我正在运行一个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)]
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试读取该文件时,出现以下错误:

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'
Run Code Online (Sandbox Code Playgroud)

这里可能是什么问题?任何帮助/支持,我们将不胜感激。

Sil*_*vio 6

为了使用本地文件API访问DBFS挂载上的文件,您需要/dbfs在路径之前加上路径,因此在这种情况下

with open('/dbfs/mnt/test_file.json', 'r') as f:
  for line in f:
    print(line)
Run Code Online (Sandbox Code Playgroud)

请参阅https://docs.databricks.com/data/databricks-file-system.html#local-file-apis中的文档,以获取更多详细信息,尤其是有关限制的信息。对于Databricks Runtime 5.5 及更低版本,文件大小限制为2GB。在6.0+版本中,不再存在这种限制,因为FUSE挂载已经过优化,可以处理更大的文件。