在 Spark 作业中获取 Databricks 集群 ID(或获取集群链接)

Posted

技术标签:

【中文标题】在 Spark 作业中获取 Databricks 集群 ID(或获取集群链接)【英文标题】:Get Databricks cluster ID (or get cluster link) in a Spark job 【发布时间】:2021-06-30 14:13:39 【问题描述】:

我想在正在运行的 Spark 作业中获取集群链接(或手动组合链接的集群 ID)。

这将用于在警报消息中打印链接,使工程师更容易访问日志。

是否有可能在 Databricks 中运行的 Spark 作业中实现这一点?

【问题讨论】:

【参考方案1】:

Databricks 集群启动时,会添加许多 Spark 配置属性。它们中的大多数名称以 spark.databricks. 开头 - 您可以在 Spark UI 的 Environment 选项卡中找到所有名称。

集群 ID 可用作 spark.databricks.clusterUsageTags.clusterId 属性,您可以通过以下方式获取它:

spark.conf.get("spark.databricks.clusterUsageTags.clusterId") 

您可以通过 dbutils.notebook.getContext().apiUrl.get 调用(对于 Scala)或 dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiUrl().get()(对于 Python)获取工作区主机名

【讨论】:

以上是关于在 Spark 作业中获取 Databricks 集群 ID(或获取集群链接)的主要内容,如果未能解决你的问题,请参考以下文章

无法为 Databricks 作业构建具有多个主类的 Spark 应用程序

Databricks/Spark SQL - 如何在地图类型字段中获取数据

Azure databricks - 无法使用来自 datalake 存储 gen2 服务的 spark 作业读取 .csv 文件

在 Spark Azure Databricks 中创建自定义进度条指示器

Databricks 笔记本在内存作业中崩溃

在 google-dataproc 的 Spark 集群中的 pyspark 作业中使用外部库