Databricks 实用工具与适用于 Python 的 Databricks Connect

注意

本文介绍适用于 Databricks Runtime 13.0 及更高版本的 Databricks Connect。

本文介绍如何将 Databricks 实用工具与适用于 Python 的 Databricks Connect 配合使用。 Databricks Connect 使你能够将常用 IDE、笔记本服务器和自定义应用程序连接到 Azure Databricks 群集。 请参阅什么是 Databricks Partner Connect?。 有关本文的 Scala 版本,请参阅 Databricks 实用工具与适用于 Scala 的 Databricks Connect

注意

在开始使用 Databricks Connect 之前,必须先设置 Databricks Connect 客户端

按照以下方式使用 Databricks Connect 访问 Databricks 实用工具:

  • 使用 WorkspaceClient 类的 dbutils 变量访问 Databricks 实用程序。 WorkspaceClient 类属于适用于 Python 的 Databricks SDK,它包含在 Databricks Connect 中。
  • 使用 dbutils.fs 访问 Databricks Utilities 的 fs 实用工具。
  • 使用 dbutils.secrets 访问 Databricks 实用工具的机密实用工具。
  • 除了上述实用工具之外,没有其他 Databricks Utilities 功能通过 dbutils 提供。

提示

还可以使用包含的适用于 Python 的 Databricks SDK 访问任何可用的 Databricks REST API,而不仅仅是前面的 Databricks 实用工具 API。 请参阅 PyPI 上的 databricks-sdk

若要初始化 WorkspaceClient,必须提供足够的信息对 Databricks SDK 进行工作区身份验证。 例如,可以:

  • 直接在代码中对工作区 URL 和访问令牌进行硬编码,然后按照以下方式初始化 WorkspaceClient。 虽然支持此选项,但 Databricks 不建议使用此选项,因为如果将代码签入版本控制或以其他方式共享,可能会透露敏感信息,例如访问令牌:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(host  = f"https://{retrieve_workspace_instance_name()}",
                        token = retrieve_token())
    
  • 创建或指定包含字段 hosttoken配置文件,然后如下所示初始化 WorkspaceClient

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(profile = "<profile-name>")
    
  • 像为 Databricks Connect 设置环境变量一样设置环境变量 DATABRICKS_HOSTDATABRICKS_TOKEN,然后如下所示初始化 WorkspaceClient

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    

适用于 Python 的 Databricks SDK 无法识别 Databricks Connect 的 SPARK_REMOTE 环境变量。

有关适用于 Python 的 Databricks SDK 的其他 Azure Databricks 身份验证选项,以及如何在 Databricks SDK 中初始化 AccountClient 以在帐户级别而不是工作区级别访问可用的 Databricks REST API,请参阅 PyPI 上的 databricks-sdk

以下示例演示如何使用适用于 Python 的 Databricks SDK 自动执行 Databricks Utilities。 此示例在工作区的 Unity Catalog 卷路径中创建一个名为 zzz_hello.txt 的文件,从文件读取数据,然后删除该文件。 此示例假设已设置环境变量 DATABRICKS_HOSTDATABRICKS_TOKEN

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

file_path = "/Volumes/main/default/my-volume/zzz_hello.txt"
file_data = "Hello, Databricks!"
fs = w.dbutils.fs

fs.put(
  file      = file_path,
  contents  = file_data,
  overwrite = True
)

print(fs.head(file_path))

fs.rm(file_path)

另请参阅适用于 Python 的 Databricks SDK 文档中的与 dbutils 交互