我正在运行一个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'
这里可能是什么问题?任何帮助/支持都将不胜感激。
答案 0 :(得分:2)
为了使用本地文件API访问DBFS挂载上的文件,您需要在路径前加上/dbfs
,因此在您的情况下应该为
with open("/dbfs/mnt/test_file.json", 'r') as f:
for line in f:
print line
请注意,将本地文件API直接读取到DBFS时有一个2GB file limit。对于较大的文件,您将要使用dbutils.fs.cp
来制作文件的本地副本。