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

How can I get a job name while the job running in Databricks. It is not notebook based job(当作业在数据库中运行时,如何获取作业名称。它不是基于笔记本的作业)

本文介绍了当作业在数据库中运行时,如何获取作业名称。它不是基于笔记本的作业的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试获取正在运行的作业的名称。我想知道他的名字,然后发消息。例如:我将作业部署到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')

这篇关于当作业在数据库中运行时,如何获取作业名称。它不是基于笔记本的作业的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

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