如何在Databricks中查找使用pickle写入的文件?
无法跨笔记本访问pickle文件的解决方法
问题根源
你使用相对路径
"file.txt"写入文件时,默认存储在当前会话绑定的驱动节点本地临时文件系统中,不属于DBFS、FileStore这类集群共享存储。这类本地文件仅当前会话的笔记本可访问,会话终止后会自动清理,因此你在其他笔记本、FileStore中都无法找到文件,拼接工作区笔记本的逻辑路径也无法对应到真实的物理文件位置。
查找操作步骤
- 第一步先确认原笔记本的运行会话是否存活:如果原笔记本仍在运行未终止,对应的驱动节点还未销毁,可通过挂载驱动本地文件系统到DBFS实现访问,执行以下代码完成挂载:
dbutils.fs.mount("file:/", "/mnt/driver_local")
- 挂载完成后,默认的会话工作目录为
/databricks/driver,你可以直接访问路径/mnt/driver_local/databricks/driver/file.txt获取目标pickle文件。 - 如果原笔记本的会话已经终止,文件已经被系统自动清理,无法找回。后续如果需要跨笔记本持久化存储文件,写入时直接指定DBFS共享路径即可,示例如下:
# 写入到共享FileStore路径 with open("/dbfs/FileStore/file.txt", 'wb') as fp: pickle.dump(L, fp)
写入后所有笔记本都可以通过同一路径访问该文件。
内容的提问来源于stack exchange,提问作者John Smith
相关产品推荐
相关产品推荐

