Databricks 实用工具与适用于 Python 的 Databricks Connect
注意
本文介绍适用于 Databricks Runtime 13.3 LTS 及更高版本的 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())
创建或指定包含字段
host
和token
的配置文件,然后如下所示初始化WorkspaceClient
:from databricks.sdk import WorkspaceClient w = WorkspaceClient(profile = "<profile-name>")
像为 Databricks Connect 设置环境变量一样设置环境变量
DATABRICKS_HOST
和DATABRICKS_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_HOST
和 DATABRICKS_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 交互。