Databricks中Pandas保存文件未找到及CWD路径定位问题
问题解答
操作问题分析
你的操作有两个主要问题:
- 存储路径选错了:
os.getcwd()返回的是Databricks集群节点的本地临时目录——这个目录只属于当前运行的集群节点,不属于Databricks工作区的长期存储,所以GUI里根本找不到它。而且集群重启、节点更换后,这个目录里的文件会直接被清空,后续自然读不到。 - 执行上下文的问题:就算你在同一个笔记本会话里执行读写,Pandas的操作是在驱动节点本地跑的,如果后续某些操作切换到worker节点执行,也会找不到驱动节点本地的文件。
正确的保存方式
要让文件能在GUI里找到且长期保存,得把文件存到Databricks工作区或者DBFS(Databricks文件系统):
- 存到DBFS(推荐,适合大文件):
# 直接保存到DBFS的持久化路径,替换为你的自定义路径 df.to_csv('/dbfs/mnt/your-custom-path/data.csv', index=False) # 或者用Databricks自带的工具函数 dbutils.fs.put('/mnt/your-custom-path/data.csv', df.to_csv(index=False), overwrite=True) - 存到工作区(适合小文件,有大小限制):
# 保存到当前笔记本所在的工作区目录,替换为你的实际路径 df.to_csv('/Workspace/Users/your-email@xxx.com/your-folder/data.csv', index=False)
GUI里怎么找文件
- 找DBFS里的文件:
- 左侧导航栏点数据,选DBFS,然后跟着你保存的路径(比如
/mnt/your-custom-path)逐层查找就能看到文件。
- 左侧导航栏点数据,选DBFS,然后跟着你保存的路径(比如
- 找工作区里的文件:
- 左侧导航栏点工作区,按照你保存的路径层级(比如
Users/your-email@xxx.com/your-folder)点击导航即可找到目标文件。
- 左侧导航栏点工作区,按照你保存的路径层级(比如
关于CWD的说明
集群节点的本地CWD是临时目录,没法通过GUI直接访问。如果非要查看这个目录的内容,在笔记本里执行以下命令即可:
import os # 列出CWD下的所有文件 dbutils.fs.ls('file:' + os.getcwd())
但这些文件都是临时存储的,绝对不能用来保存需要长期保留的数据。
内容的提问来源于stack exchange,提问作者coolest-duck
相关产品推荐
相关产品推荐

