当作业在 Databricks 中运行时,如何获取作业名称。这不是基于笔记本的工作

Bor*_*oev 4 python apache-spark pyspark databricks databricks-workflows

我正在尝试获取正在运行的作业的名称。我想获取姓名并发送消息。示例:我将作业部署到 databricks 并运行它。我希望这个作业在松弛时发送带有作业名称的消息,这就是为什么我想获取当前作业的名称。

Ale*_*Ott 5

spark.confDatabricks 通过- 配置属性以 开头公开大量信息spark.databricks.clusterUsageTags.,因此您可以过滤所有配置并搜索必要的信息。

对于作业(以及交互式集群,但略有不同),有一个配置属性spark.databricks.clusterUsageTags.clusterAllTags,它表示一个 JSON 字符串,其中包含一个字典列表,每个字典由keyvalue字段组成。对于作业,您应该拥有RunName作业名称和JobId作业 ID 的密钥。你可以用这样的东西来转换它:

import json
all_tags = {}
for tag in json.loads(spark.conf.get(
      "spark.databricks.clusterUsageTags.clusterAllTags")):
  all_tags[tag['key']] = tag['value']
job_name = all_tags.get('RunName')
Run Code Online (Sandbox Code Playgroud)