Overlays progress text on top of bar
This commit is contained in:
parent
099528b6c4
commit
ca1903ea63
|
@ -37,7 +37,7 @@ private[spark] class StageTable(val stages: Seq[Stage], val parent: JobProgressU
|
|||
<th>Origin</th>
|
||||
<th>Submitted</th>
|
||||
<td>Duration</td>
|
||||
<td colspan="2">Tasks: Succeeded/Total</td>
|
||||
<td>Tasks: Succeeded/Total</td>
|
||||
<td>Shuffle Read</td>
|
||||
<td>Shuffle Write</td>
|
||||
</thead>
|
||||
|
@ -54,11 +54,14 @@ private[spark] class StageTable(val stages: Seq[Stage], val parent: JobProgressU
|
|||
}
|
||||
}
|
||||
|
||||
def makeProgressBar(started: Int, completed: Int, total: Int): Seq[Node] = {
|
||||
def makeProgressBar(started: Int, completed: Int, failed: String, total: Int): Seq[Node] = {
|
||||
val completeWidth = "width: %s%%".format((completed.toDouble/total)*100)
|
||||
val startWidth = "width: %s%%".format((started.toDouble/total)*100)
|
||||
|
||||
<div class="progress" style="height: 15px; margin-bottom: 0px">
|
||||
<div class="progress" style="height: 15px; margin-bottom: 0px; position: relative">
|
||||
<span style="text-align:center; position:absolute; width:100%;">
|
||||
{completed}/{total} {failed}
|
||||
</span>
|
||||
<div class="bar" style={completeWidth}></div>
|
||||
<div class="bar bar-info" style={startWidth}></div>
|
||||
</div>
|
||||
|
@ -82,6 +85,10 @@ private[spark] class StageTable(val stages: Seq[Stage], val parent: JobProgressU
|
|||
|
||||
val startedTasks = listener.stageToTasksActive.getOrElse(s.id, HashSet[TaskInfo]()).size
|
||||
val completedTasks = listener.stageToTasksComplete.getOrElse(s.id, 0)
|
||||
val failedTasks = listener.stageToTasksFailed.getOrElse(s.id, 0) match {
|
||||
case f if f > 0 => "(%s failed)".format(f)
|
||||
case _ => ""
|
||||
}
|
||||
val totalTasks = s.numPartitions
|
||||
|
||||
val poolName = listener.stageToPool.get(s)
|
||||
|
@ -95,12 +102,8 @@ private[spark] class StageTable(val stages: Seq[Stage], val parent: JobProgressU
|
|||
<td>{submissionTime}</td>
|
||||
<td>{getElapsedTime(s.submissionTime,
|
||||
s.completionTime.getOrElse(System.currentTimeMillis()))}</td>
|
||||
<td class="progress-cell">{makeProgressBar(startedTasks, completedTasks, totalTasks)}</td>
|
||||
<td style="border-left: 0; text-align: center;">{completedTasks} / {totalTasks}
|
||||
{listener.stageToTasksFailed.getOrElse(s.id, 0) match {
|
||||
case f if f > 0 => "(%s failed)".format(f)
|
||||
case _ =>
|
||||
}}
|
||||
<td class="progress-cell">
|
||||
{makeProgressBar(startedTasks, completedTasks, failedTasks, totalTasks)}
|
||||
</td>
|
||||
<td>{shuffleRead}</td>
|
||||
<td>{shuffleWrite}</td>
|
||||
|
|
Loading…
Reference in a new issue