databricks/databricks-sdk-py

Databricks SDK for Python (Beta)

Databricks SDK for Python(测试版)

是什么 – 一个封装了全部公开 Databricks REST API 的 Python 客户端库。它允许您通过 Python 代码程序化地管理 Databricks 工作区、集群、作业、Unity Catalog 以及其他 Lakehouse 资源。

为何重要 – Databricks 是一个广泛使用的云数据湖/数据仓库平台,同时也托管基于 Spark 的机器学习工作负载。该 SDK 抽象了原始的 HTTP 调用,增加了智能重试、分页处理和统一认证,使得构建与 Databricks 交互的自动化、CI/CD 流水线或自定义工具变得简单得多。

快速入门

pip install databricks-sdk
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()          # 从 .databrickscfg、环境变量或默认值中获取主机/令牌
for c in w.clusters.list():
    print(c.cluster_name)

该 SDK 支持 Python 3.7–3.11。在 Databricks Runtime 13.1+ 中,该库已预先安装;否则,请在笔记本中运行 %pip install --upgrade databricks-sdk 并重启 Python 进程。

核心功能(详见 README)

  • 完整 API 覆盖 – 所有公开的 Databricks REST 端点均作为 Python 方法暴露。
  • 健壮的 HTTP 客户端 – 对临时失败自动重试和退避。
  • 分页响应 – 迭代器助手隐藏了分页细节。
  • 长运行操作处理 – 提供帮助程序以等待作业、集群等达到所需状态。
  • 统一认证 – 支持:
    • Databricks 个人访问令牌(PAT)认证
    • 工作负载身份联合(OIDC)令牌
    • Azure 原生流程(客户端密钥、Azure CLI、托管服务身份)
    • GCP 原生流程(服务账户 JSON、默认应用凭证)
    • 自动检测云提供商(AWS、Azure、GCP)并选择相应方法。
  • 配置来源 – 凭据可通过函数参数、环境变量或 ~/.databrickscfg 配置文件提供。SDK 按指定顺序搜索这些位置,找到第一个有效配置即停止。
  • 统一主机支持 – 当 account_id 和 workspace_id 存在时,单个主机可同时提供账户级和工作区级 API,允许使用同一配置文件创建 WorkspaceClient 和 AccountClient 对象。
  • 用户代理归属 – 客户端添加可识别的头部,供 Databricks 跟踪 SDK 使用情况。
  • 错误处理与日志 – 一致的异常类型和可选的日志钩子。

仓库中展示的示例用例

  • Flask Web 服务器中的 OAuth 流程(examples/flask_app_with_oauth.py)。
  • 启动作业并等待其完成(examples/starting_job_and_waiting.py)。
  • 本地浏览器 OAuth 登录(examples/local_browser_oauth.py)。
  • 实际项目如 Unity Catalog 迁移和 IP 访问列表分析均依赖此 SDK。

进一步学习

许可证 – 在与上游 Databricks 仓库相同的许可证下开源(详见 LICENSE)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目