什么是工作区文件?

工作区文件是 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 执行程序(如 spark.read.format("csv").load("file:/Workspace/Users/<user-folder>/data.csv") )从工作区文件中读取数据。
  • 执行程序无法写入到工作区文件。
  • /Workspace 根文件夹下的目标目录支持符号链接。
  • 在 Databricks Runtime 14.2 及更低版本上,无法从共享访问模式的群集上的用户定义的函数 (UDF) 访问工作区文件。

文件大小限制

  • UI 中的工作区文件大小限制为 500MB。 从群集写入时,允许的最大文件大小为 256 MB。

文件访问权限限制

访问 /Workspace 下文件夹中文件的权限,交互式计算 36 小时后过期,作业 30 天后过期。 如果作业需要 /Workspace 文件访问,Databricks 建议运行长时间执行。

启用工作区文件

要在 Databricks 工作区中启用对非笔记本文件的支持,可从笔记本或有权访问 Databricks 工作区的其他环境中调用 /api/2.0/workspace-conf REST API。 默认情况下,工作区文件处于“已启用”状态

要在 Databricks 工作区中启用或重新启用对非笔记本文件的支持,请调用 /api/2.0/workspace-conf 并获取 enableWorkspaceFileSystem 密钥的值。 如果将其设置为 true,则已为工作区启用非笔记本文件。

以下示例演示如何从笔记本调用此 API,以检查是否禁用了工作区文件,如果为是,请重新启用它们。

示例:用于重新启用 Databricks 工作区文件支持的笔记本

获取笔记本