aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorPatrick Wendell <pwendell@gmail.com>2013-08-12 16:14:38 -0700
committerPatrick Wendell <pwendell@gmail.com>2013-08-13 16:25:55 -0700
commit024e5c5ce103d7b45ed5b455747fd784cbde17c9 (patch)
tree011cf9bf5cb718dc0ed65cb42f01dd5c6078b261 /core
parent4e9f0c2df6508db8fbe00901aa78fb5809e46010 (diff)
downloadspark-024e5c5ce103d7b45ed5b455747fd784cbde17c9.tar.gz
spark-024e5c5ce103d7b45ed5b455747fd784cbde17c9.tar.bz2
spark-024e5c5ce103d7b45ed5b455747fd784cbde17c9.zip
Correct sorting order for stages
Diffstat (limited to 'core')
-rw-r--r--core/src/main/scala/spark/ui/jobs/StagePage.scala2
-rw-r--r--core/src/main/scala/spark/ui/jobs/StageTable.scala14
2 files changed, 6 insertions, 10 deletions
diff --git a/core/src/main/scala/spark/ui/jobs/StagePage.scala b/core/src/main/scala/spark/ui/jobs/StagePage.scala
index ce01f6c17e..28a6d7b179 100644
--- a/core/src/main/scala/spark/ui/jobs/StagePage.scala
+++ b/core/src/main/scala/spark/ui/jobs/StagePage.scala
@@ -165,7 +165,7 @@ private[spark] class StagePage(parent: JobProgressUI) {
<td>{metrics.flatMap{m => m.shuffleWriteMetrics}.map{s =>
Utils.memoryBytesToString(s.shuffleBytesWritten)}.getOrElse("")}</td>
}}
- <td sortable_customkey={gcTime}>
+ <td sorttable_customkey={gcTime.toString}>
{if (gcTime > 0) {parent.formatDuration(gcTime)} else ""}
</td>
<td>{exception.map(e =>
diff --git a/core/src/main/scala/spark/ui/jobs/StageTable.scala b/core/src/main/scala/spark/ui/jobs/StageTable.scala
index 5068a025fa..19b07cceda 100644
--- a/core/src/main/scala/spark/ui/jobs/StageTable.scala
+++ b/core/src/main/scala/spark/ui/jobs/StageTable.scala
@@ -49,13 +49,6 @@ private[spark] class StageTable(val stages: Seq[Stage], val parent: JobProgressU
</table>
}
- private def getElapsedTime(submitted: Option[Long], completed: Long): String = {
- submitted match {
- case Some(t) => parent.formatDuration(completed - t)
- case _ => "Unknown"
- }
- }
-
private 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)
@@ -98,6 +91,8 @@ private[spark] class StageTable(val stages: Seq[Stage], val parent: JobProgressU
val nameLink = <a href={"/stages/stage?id=%s".format(s.id)}>{s.name}</a>
val description = listener.stageToDescription.get(s)
.map(d => <div><em>{d}</em></div><div>{nameLink}</div>).getOrElse(nameLink)
+ val finishTime = s.completionTime.getOrElse(System.currentTimeMillis())
+ val duration = s.submissionTime.map(t => finishTime - t)
<tr>
<td>{s.id}</td>
@@ -106,8 +101,9 @@ private[spark] class StageTable(val stages: Seq[Stage], val parent: JobProgressU
}
<td>{description}</td>
<td valign="middle">{submissionTime}</td>
- <td>{getElapsedTime(s.submissionTime,
- s.completionTime.getOrElse(System.currentTimeMillis()))}</td>
+ <td sorttable_customkey={duration.getOrElse(-1).toString}>
+ {duration.map(d => parent.formatDuration(d)).getOrElse("Unknown")}
+ </td>
<td class="progress-cell">
{makeProgressBar(startedTasks, completedTasks, failedTasks, totalTasks)}
</td>