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

标签 python apache-spark pyspark databricks

我正在尝试获取正在运行的作业的名称。我想获取名称并发送消息。示例:我将作业部署到数据 block 并运行它。我希望这项工作在 slack 开始时使用工作名称发送消息,这就是为什么我想获取当前工作的名称。

最佳答案

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')

关于python - 在 Databricks 中运行作业时如何获取作业名称。这不是基于笔记本的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68906871/

相关文章:

python - 基本 DNA 编码练习

python - 方法输出是否需要绑定(bind)到 "self"才能被其他方法使用?

java - 如果我们缓存一个DataSet,然后将同一个DataSet缓存为表,Spark会缓存数据两次吗

pyspark - 无法使用 kinesis 流在 Spark-streaming 中创建流

python - 如何避免pyspark中表达式中的多个窗口函数

python - 为 Python 脚本创建 GUI

python - 在 Python 中的列表上循环函数

apache-spark - 将向量转换为数据帧时出错

hadoop - 如何配置 pyspark 默认写入 HDFS?

java - 在 Pyspark 中访问 JavaRDD