如何使用Python脚本自动化创建Azure Databricks集群?
Azure Databricks集群创建自动化(Python 实现)
完全可以通过Python脚本实现Azure Databricks集群的创建自动化,推荐使用官方的Databricks SDK for Python(databricks-sdk)来完成,以下是具体步骤和实现方法:
前提条件
- 安装
databricks-sdkPython包 - 拥有Azure Databricks工作区的访问权限,且已生成具备集群管理权限(如
clusters.create、clusters.list)的个人访问令牌(PAT) - 获取你的Azure Databricks工作区URL(格式:
https://<workspace-id>.azuredatabricks.net)
实现步骤
1. 安装依赖包
执行以下命令安装官方SDK:
pip install databricks-sdk
2. 配置认证
有两种认证方式可选:
- 环境变量方式(推荐,避免硬编码敏感信息):
在终端设置环境变量:export DATABRICKS_HOST="https://<your-workspace-url>.azuredatabricks.net" export DATABRICKS_TOKEN="<your-pat-token>" - 代码内手动指定:
在脚本中直接传入host和token参数(不推荐用于生产环境)
3. 编写创建集群的Python脚本
示例脚本如下,可根据实际需求调整配置参数:
from databricks.sdk import WorkspaceClient from databricks.sdk.service import compute # 初始化Workspace客户端(若已设置环境变量,可省略host和token参数) w = WorkspaceClient( host="https://<your-workspace-url>.azuredatabricks.net", token="<your-pat-token>" ) # 定义集群配置 cluster_spec = compute.ClusterSpec( cluster_name="auto-provisioned-cluster", spark_version="13.3.x-scala2.12", # 替换为工作区支持的Spark版本 node_type_id="Standard_DS3_v2", # 替换为Azure支持的虚拟机类型 autoscale=compute.AutoScale( min_workers=1, max_workers=5 ), custom_tags={ "Owner": "Automation", "Project": "DataPipeline" }, # 若需使用无服务器集群,添加以下配置 # spark_conf={"spark.databricks.cluster.profile": "serverless"} ) # 创建集群并等待完成 cluster = w.clusters.create_and_wait(**cluster_spec.as_dict()) print(f"集群创建成功!集群ID: {cluster.cluster_id},当前状态: {cluster.state}")
4. 验证集群状态
可扩展脚本检查集群运行状态:
# 获取集群详情 cluster_info = w.clusters.get(cluster_id=cluster.cluster_id) print(f"集群名称: {cluster_info.cluster_name}") print(f"当前状态: {cluster_info.state}") print(f"Worker节点数: {cluster_info.num_workers}")
注意事项
- Spark版本和节点类型需与你的Azure Databricks工作区兼容,可在Databricks UI的集群创建页面查看可用选项
- 确保PAT拥有足够的权限,否则会出现认证或操作失败的错误
- 可基于此脚本拓展集群启停、删除、配置更新等更多自动化操作
内容的提问来源于stack exchange,提问作者Siddhu
相关产品推荐
相关产品推荐

