什么是工作区文件?
工作区文件是 Azure Databricks 工作区文件树中的一个文件,它不属于下面所列类型之一:
- Notebook
- 查询
- 仪表板
- Genie spaces
- 实验
除了这些排除的类型之外,工作区文件可以是任何文件类型。 常见示例包括:
- 自定义模块中使用的
.py
文件。 .md
文件,例如README.md
。.csv
或其他小型数据文件。.txt
文件。.whl
库。- 日志文件。
有关使用文件的建议,请参阅“卷和工作区文件中文件的建议”。
Azure Databricks 工作区文件树可包含附加到名为“Databricks Git 文件夹”的 Git 存储库的文件夹。 它们在文件类型支持方面有一些额外的限制。 有关 Git 文件夹支持的文件类型列表(以前为“Repos”),请参阅 Git 文件夹中支持的资产类型。
重要
在 Databricks Runtime 版本 11.2 中,工作区文件在任何位置都默认启用。 对于生产工作负载,请使用 Databricks Runtime 11.3 LTS 或更高版本。 如果无法访问此功能,请与工作区管理员联系。
工作区文件有哪些作用
Azure Databricks 为许多工作区文件类型(包括内置文件编辑器)提供类似于本地开发的功能。 并非所有文件类型的所有用例都受支持。
可以使用笔记本交互中熟悉的模式创建、编辑和管理对工作区文件的访问权限。 可以使用相对路径从工作区文件进行库导入,类似于本地开发。 有关详细信息,请参阅:
存储在工作区文件中的初始化脚本具有特殊行为。 可以在任何 Databricks Runtime 版本中使用工作区文件来存储和引用初始化脚本。 请参阅在工作区文件中存储 init 脚本。
注意
在 Databricks Runtime 14.0 及更高版本中,本地执行的代码的默认当前工作目录 (CWD) 是包含正在运行的笔记本或脚本的目录。 这是 Databricks Runtime 13.3 LTS 及更低版本的行为更改。 请参阅什么是默认的当前工作目录?。
限制
- 如果工作流使用远程 Git 存储库中的源代码,则无法写入当前目录或使用相对路径进行写入。 将数据写入其他位置选项。
- 保存到工作区文件时,不能使用
git
命令。 不允许在工作区文件中创建.git
目录。 spark.read.format("csv").load("file:/Workspace/Users/<user-folder>/data.csv")
不支持使用 Spark 执行程序(如 )从工作区文件中读取数据。- 执行程序无法写入到工作区文件。
- 根文件夹下
/Workspace
的目标目录支持符号链接。 - 在 Databricks Runtime 14.2 及更低版本上,无法从共享访问模式的群集上的用户定义的函数 (UDF) 访问工作区文件。
文件大小限制
- 工作区文件大小限制为 500MB。 尝试下载或创建大于此限制的文件的操作将失败。
文件访问权限限制
对于交互式计算,在 36 小时后以及作业 30 天后访问文件夹中 /Workspace
的文件的权限。 Databricks 建议在作业需要 /Workspace 文件访问时运行长时间执行。
启用工作区文件
要在 Databricks 工作区中启用对非笔记本文件的支持,可从笔记本或有权访问 Databricks 工作区的其他环境中调用 /api/2.0/workspace-conf REST API。 默认情况下,工作区文件处于“已启用”状态。
要在 Databricks 工作区中启用或重新启用对非笔记本文件的支持,请调用 /api/2.0/workspace-conf
并获取 enableWorkspaceFileSystem
密钥的值。 如果将其设置为 true
,则已为工作区启用非笔记本文件。
以下示例演示如何从笔记本调用此 API,以检查是否禁用了工作区文件,如果为是,请重新启用它们。