使用dbutils.fs.ls时路径存在却报错文件不存在的原因咨询
为什么
dbutils.fs.ls(/dbfs/mnt/a.parquet)找不到文件,但dbutils.fs.ls(/mnt/a.parquet)可以? DBFS命名空间与本地挂载路径的本质区别
dbutils.fs是直接操作DBFS(Databricks文件系统)的工具,它的路径体系以DBFS根目录/为起点,/mnt/a.parquet是DBFS里的合法路径,对应实际存储的位置。而/dbfs/是集群节点本地文件系统对DBFS的挂载目录,这个前缀只适用于在集群终端(如bash)通过本地文件系统访问DBFS内容,不适用于dbutils.fs的路径解析。dbutils.fs的路径解析逻辑
当你执行dbutils.fs.ls(/dbfs/mnt/a.parquet)时,工具会在DBFS的命名空间里查找/dbfs/mnt/a.parquet这个路径,但DBFS根目录下根本没有dbfs这个子目录,自然找不到目标文件。而dbutils.fs.ls(/mnt/a.parquet)是直接访问DBFS根目录下的mnt子目录,所以能正常看到路径。简单验证方法
执行dbutils.fs.ls("/")查看DBFS根目录内容,你会发现mnt目录存在,但不存在dbfs目录,这就能直观理解两者的差异。
内容的提问来源于stack exchange,提问作者user21325429
相关产品推荐
相关产品推荐

