【问题标题】:How can I get a job name while the job running in Databricks. It is not notebook based job在 Databricks 中运行作业时如何获取作业名称。它不是基于笔记本的工作
【发布时间】:2021-10-24 15:30:50
【问题描述】:

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

【问题讨论】:

    标签: python apache-spark pyspark databricks


    【解决方案1】:

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

    【讨论】:

    • 你知道如何获取工作空间名称吗?我在 Databricks 有不同的环境,我希望我的工作有自我意识。
    • 这取决于它是否是笔记本电脑。对于笔记本,你可以这样做:stackoverflow.com/a/69187852/18627,对于非笔记本,我不记得了
    猜你喜欢
    • 2022-06-23
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2019-07-02
    • 2021-10-23
    • 2021-07-09
    相关资源
    最近更新 更多