Azure Databricks:如何获取工作区内文件的有效路径?
解决Databricks工作区文件访问路径问题
问题根源
Databricks工作区文件系统和DBFS是相互独立的存储体系,你直接使用/dde9540f/cert/client-keystore.p12这类路径时,程序会默认去集群节点的本地文件系统查找,而非你通过REST API创建的工作区文件夹,因此触发NoSuchFileException。
正确访问方式
1. 带file:/Workspace/前缀的绝对路径
工作区文件必须以file:/Workspace/作为根路径前缀来访问,对应你的场景,有效路径为:
file:/Workspace/dde9540f/cert/client-keystore.p12
示例(Spark读取二进制文件):
val keystoreData = spark.read.format("binaryFile").load("file:/Workspace/dde9540f/cert/client-keystore.p12")
2. 使用dbutils工具访问(Notebook场景)
在Notebook中操作时,用dbutils.fs工具访问更便捷,路径需指定/Workspace/前缀:
# Python示例读取文件内容 keystore_content = dbutils.fs.head("/Workspace/dde9540f/cert/client-keystore.p12")
3. REST API读取工作区文件
如果继续用REST API读取,需调用Workspace Files API,请求路径参数直接填/dde9540f/cert/client-keystore.p12,同时确保请求主体拥有该文件夹的读取权限(和创建时的权限配置匹配)。
额外注意事项
确认执行读取操作的用户/服务账号,已经被授予/dde9540f/cert文件夹的读取权限——因为你设置了访问控制,权限不足也可能伪装成“文件不存在”的错误。
内容的提问来源于stack exchange,提问作者coders
相关产品推荐
相关产品推荐

