当作业在数据库中运行时,如何获取作业名称。它不是基于笔记本的作业

2022-04-11 00:00:00 python databricks pyspark apache-spark

问题描述

我正在尝试获取正在运行的作业的名称。我想知道他的名字,然后发消息。例如:我将作业部署到Databricks并运行它。并且我希望此作业在启动时使用作业名称发送消息,这就是我要获取当前作业名称的原因。


解决方案

数据库通过spark.conf公开大量信息-配置属性以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')

相关文章