diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala b/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala index 1b10feb36e439..f325a802dc2eb 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala @@ -202,12 +202,13 @@ class JobProgressListener(conf: SparkConf) extends SparkListener with Logging { } jobIdToData(jobStart.jobId) = jobData activeJobs(jobStart.jobId) = jobData - for (stageId <- jobStart.stageIds) { - stageIdToActiveJobIds.getOrElseUpdate(stageId, new HashSet[StageId]).add(jobStart.jobId) - } + // If there's no information for a stage, store the StageInfo received from the scheduler // so that we can display stage descriptions for pending stages: for (stageInfo <- jobStart.stageInfos) { + stageIdToActiveJobIds.getOrElseUpdate(stageInfo.stageId, + new HashSet[StageId]).add(jobStart.jobId) + stageIdToInfo.getOrElseUpdate(stageInfo.stageId, stageInfo) stageIdToData.getOrElseUpdate((stageInfo.stageId, stageInfo.attemptId), new StageUIData) }