Azure Databricks中重命名Data Lake文件时找不到路径该如何解决
问题根因
/mnt/开头的路径是Databricks文件系统(DBFS)的专属逻辑路径,Python标准库的os模块默认访问的是集群驱动节点的本地文件系统,无法直接识别DBFS逻辑路径,因此会抛出路径/文件不存在的报错。
你用到的%fs ls是Databricks原生魔术命令、PySpark读写默认对接DBFS存储,二者都原生适配DBFS路径规则,所以可以正常访问。
可用解决方案
两种方案都不需要安装任何额外类库,生产环境默认支持:
方案1:路径前加/dbfs前缀继续使用os.rename
Databricks默认已经将DBFS通过FUSE挂载到驱动节点的/dbfs目录下,你只要给原有路径拼接上该前缀即可用标准os库操作:
import os old_name = r"/dbfs/mnt/datalake/path/part-00000-tid-1761178-3f1b0942-223-1-c000.csv" new_name = r"/dbfs/mnt/datalake/path/example.csv" os.rename(old_name, new_name)
方案2:用Databricks自带的dbutils工具实现
dbutils是Databricks官方内置工具,原生支持DBFS操作,不需要额外依赖,重命名写法如下:
old_name = r"/mnt/datalake/path/part-00000-tid-1761178-3f1b0942-223-1-c000.csv" new_name = r"/mnt/datalake/path/example.csv" # mv命令默认就支持重命名操作 dbutils.fs.mv(old_name, new_name)
该方案不需要修改原有路径格式,操作大文件时的效率比os库更高。
注意事项
- 操作前确认对应路径没有其他任务在读写,避免文件占用导致操作失败
- 如果操作的是层级目录,dbutils的
mv命令也支持直接对整个目录做重命名
内容的提问来源于stack exchange,提问作者Gonza
相关产品推荐
相关产品推荐

