aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala
diff options
context:
space:
mode:
authorNeville Li <neville@spotify.com>2014-07-24 14:13:00 -0700
committerPatrick Wendell <pwendell@gmail.com>2014-07-24 14:13:00 -0700
commitfec641b84d37848b329bba91857240ac5b87fc54 (patch)
tree7872df770ce041d61e6cd68b8d22fa875ce6b9aa /core/src/main/scala
parent323a83c5235f9289cd9526491d62365df96a429b (diff)
downloadspark-fec641b84d37848b329bba91857240ac5b87fc54.tar.gz
spark-fec641b84d37848b329bba91857240ac5b87fc54.tar.bz2
spark-fec641b84d37848b329bba91857240ac5b87fc54.zip
SPARK-2250: show stage RDDs in UI
Author: Neville Li <neville@spotify.com> Closes #1188 from nevillelyh/neville/ui and squashes the following commits: d3ac425 [Neville Li] SPARK-2250: show persisted RDD in stage UI f075db9 [Neville Li] SPARK-2035: show call stack even when description is available
Diffstat (limited to 'core/src/main/scala')
-rw-r--r--core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala20
1 files changed, 16 insertions, 4 deletions
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala
index 5f45c0ced5..f8b308c981 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala
@@ -18,6 +18,7 @@
package org.apache.spark.ui.jobs
import scala.xml.Node
+import scala.xml.Text
import java.util.Date
@@ -99,19 +100,30 @@ private[ui] class StageTableBase(
{s.name}
</a>
+ val cachedRddInfos = s.rddInfos.filter(_.numCachedPartitions > 0)
val details = if (s.details.nonEmpty) {
<span onclick="this.parentNode.querySelector('.stage-details').classList.toggle('collapsed')"
class="expand-details">
- +show details
- </span>
- <pre class="stage-details collapsed">{s.details}</pre>
+ +details
+ </span> ++
+ <div class="stage-details collapsed">
+ {if (cachedRddInfos.nonEmpty) {
+ Text("RDD: ") ++
+ // scalastyle:off
+ cachedRddInfos.map { i =>
+ <a href={"%s/storage/rdd?id=%d".format(UIUtils.prependBaseUri(basePath), i.id)}>{i.name}</a>
+ }
+ // scalastyle:on
+ }}
+ <pre>{s.details}</pre>
+ </div>
}
val stageDataOption = listener.stageIdToData.get(s.stageId)
// Too many nested map/flatMaps with options are just annoying to read. Do this imperatively.
if (stageDataOption.isDefined && stageDataOption.get.description.isDefined) {
val desc = stageDataOption.get.description
- <div><em>{desc}</em></div><div>{nameLink} {killLink}</div>
+ <div><em>{desc}</em></div><div>{killLink} {nameLink} {details}</div>
} else {
<div>{killLink} {nameLink} {details}</div>
}