当作业在数据库中运行时,如何获取作业名称。它不是基于笔记本的作业
问题描述
我正在尝试获取正在运行的作业的名称。我想知道他的名字,然后发消息。例如:我将作业部署到Databricks并运行它。并且我希望此作业在启动时使用作业名称发送消息,这就是我要获取当前作业名称的原因。
解决方案
数据库通过spark.conf
公开大量信息-配置属性以spark.databricks.clusterUsageTags.
开头,因此您可以筛选所有配置并搜索必要的信息。
对于作业(以及交互集群,但略有不同),有一个配置属性spark.databricks.clusterUsageTags.clusterAllTags
,它表示一个JSON字符串和一个字典列表,每个字典都由key
和value
字段组成。对于作业,您应该有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')
相关文章