PySpark StatusTracker (jtracker)

2024 年 8 月 29 日 | 阅读 2 分钟

PySpark 提供了低级别的状态报告 API,这些 API 用于监视作业和阶段的进度。 我们可以使用这些 API 跟踪作业。 这些 API 故意提供非常弱的兼容性语义,因此这些 API 的用户应谨慎处理缺失的信息。

作业阶段的 ID 可能会被状态跟踪器知道,但不会提供有关这些阶段的信息。 在这种情况下,PySpark 提供 getStageInfo,它为有效的阶段 ID 返回 none。

API spark.ui.retainedStagesspark.ui.retainedjobs 将提供有关当前作业和阶段的信息。

  • getActiveJobsIds()

它返回一个数组,其中包含所有活动作业的 ID。 语法如下所示

  • getActiveStageIds()

它返回一个数组,其中包含所有活动阶段的 ID。 语法如下所示

  • getJobIdsForGroup(jobGroup = None)

此函数用于获取单个作业组中的所有已知作业。 这些作业以列表的形式存在。 如果 jobgroup 为 None,则它将返回与作业组无关的所有类型的作业。

它返回可能处于运行、失败和已完成状态的作业,但顺序可能有所不同。 考虑以下代码。

  • getJobInfo(jobId)

有时由于垃圾回收,上述函数无法获取作业信息,对于这些情况,我们使用 getJobInfo。 它返回一个 SparkJobInfo 对象,或者 None。

  • getStageInfo(stageId)

同样,有时由于垃圾回收,它无法找到作业信息,然后使用 getStageinfo(stageId)。 它返回一个 SparkJobInfo 对象,或 None。