You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks 10.4 LTS中如何通过Python open()访问Workspace文件?

Databricks中用Python open()访问Workspace文件的问题解答

核心结论

不能直接用Python原生的open()方法访问Databricks Workspace下的文件。原因是Workspace的文件存储逻辑独立于集群节点的本地文件系统,open()只能读取集群本地节点的文件,或者通过/dbfs挂载点访问DBFS中的文件,但Workspace文件并不在这个直接可访问的范围内。

正确的处理方式

要读写Workspace中的文件,需要借助Databricks提供的dbutils.fs工具来中转,具体操作如下:

1. 读取Workspace文件

可以先将Workspace文件复制到集群本地临时目录,再用open()读取:

# 复制Workspace文件到本地临时目录
dbutils.fs.cp("dbfs:/Workspace/Users/<user-email>/my_result.json", "file:/tmp/my_result.json")

# 用open()读取本地临时文件
with open("/tmp/my_result.json", "r") as f:
    content = f.read()

或者直接用dbutils.fs读取文件内容,无需复制:

content = dbutils.fs.head("dbfs:/Workspace/Users/<user-email>/my_result.json")

2. 写入Workspace文件

先将内容写入集群本地临时文件,再用dbutils.fs复制到Workspace路径:

# 写入本地临时文件
with open("/tmp/my_result.json", "w") as f:
    f.write('{"status": "success", "data": []}')

# 复制到Workspace指定路径
dbutils.fs.cp("file:/tmp/my_result.json", "dbfs:/Workspace/Users/<user-email>/my_result.json")

为什么之前的路径尝试都失败

  • 无前缀的/Workspace/...:这是Workspace的逻辑路径,并非集群本地文件系统的真实路径,open()无法识别。
  • /dbfs/Workspace/...:虽然Workspace文件可以通过dbfs:/Workspace/的DBFS路径访问,但/dbfs是DBFS在集群节点的挂载点,直接用/dbfs/Workspace/...访问时,可能因权限或路径映射限制导致失败,且本质上open()仍无法直接处理Workspace的存储逻辑。
  • /file/Workspace/...:/file前缀并非Databricks支持的文件路径格式,自然无法访问。

内容的提问来源于stack exchange,提问作者jdhao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:15:02