如何获取现有Azure Databricks工作区中集群、作业、已安装库等资源总数量
实现方案总览
存在可以直接编程实现的获取方式,用Azure Databricks官方提供的REST API 2.1版本即可覆盖绝大多数常用资源的统计需求,调用前仅需提前创建工作区的个人访问令牌(PAT)作为身份验证凭证即可。
各资源的具体获取方式
- 集群总数、Spark与Scala运行时版本:调用
GET /clusters/list接口,返回结果的数组长度就是集群总数,每个集群信息的spark_version字段会直接给出对应的Spark版本、Scala版本组合,比如返回值为13.3.x-scala2.12就代表对应集群运行的是Spark 3.4.1、Scala 2.12版本。 - 作业总数:调用
GET /jobs/list接口,返回结果里的jobs数组长度就是工作区下的作业总数,若需要统计历史作业运行实例数,可以追加调用GET /jobs/runs/list接口。 - 集群已安装库:调用
GET /libraries/cluster-status接口,传入指定集群ID参数,就能拿到该集群下所有已安装库的名称、版本、安装来源信息。 - 其他构件统计:
- Notebooks总数可以调用
GET /workspace/list接口递归遍历工作区目录统计 - MLflow模型、实验信息可以调用MLflow对应的REST接口获取
- Delta Live Tables流水线信息可以调用
GET /pipelines接口获取
- Notebooks总数可以调用
示例Python代码片段
调用前请替换为你自己的工作区域名、个人访问令牌
import requests WORKSPACE_URL = "https://<你的工作区前缀>.azuredatabricks.net" PAT = "<你的个人访问令牌>" headers = {"Authorization": f"Bearer {PAT}"} # 获取集群总数及运行时版本 cluster_resp = requests.get(f"{WORKSPACE_URL}/api/2.1/clusters/list", headers=headers) clusters = cluster_resp.json().get("clusters", []) cluster_total = len(clusters) for cluster in clusters: spark_version = cluster.get("spark_version") print(f"集群ID {cluster.get('cluster_id')} 运行时版本:{spark_version}") # 获取作业总数 job_resp = requests.get(f"{WORKSPACE_URL}/api/2.1/jobs/list", headers=headers) jobs = job_resp.json().get("jobs", []) job_total = len(jobs) print(f"当前工作区集群总数:{cluster_total},作业总数:{job_total}")
内容的提问来源于stack exchange,提问作者Learn2Code
相关产品推荐
相关产品推荐

