Skip to content
Snippets Groups Projects
Commit f91e1c48 authored by Patrick Wendell's avatar Patrick Wendell
Browse files

Linking RDD information when available in stages

parent a86bb459
No related branches found
No related tags found
No related merge requests found
...@@ -10,6 +10,7 @@ import scala.Some ...@@ -10,6 +10,7 @@ import scala.Some
import spark.scheduler.Stage import spark.scheduler.Stage
import spark.ui.UIUtils._ import spark.ui.UIUtils._
import spark.storage.StorageLevel
import xml.{NodeSeq, Node} import xml.{NodeSeq, Node}
...@@ -20,7 +21,7 @@ class IndexPage(parent: JobProgressUI) { ...@@ -20,7 +21,7 @@ class IndexPage(parent: JobProgressUI) {
def render(request: HttpServletRequest): Seq[Node] = { def render(request: HttpServletRequest): Seq[Node] = {
val stageHeaders = Seq("Stage ID", "Origin", "Submitted", "Duration", "Tasks: Complete/Total", val stageHeaders = Seq("Stage ID", "Origin", "Submitted", "Duration", "Tasks: Complete/Total",
"Shuffle Activity") "Shuffle Activity", "RDDs")
val activeStages = listener.activeStages.toSeq val activeStages = listener.activeStages.toSeq
val completedStages = listener.completedStages.toSeq val completedStages = listener.completedStages.toSeq
...@@ -46,7 +47,7 @@ class IndexPage(parent: JobProgressUI) { ...@@ -46,7 +47,7 @@ class IndexPage(parent: JobProgressUI) {
case None => "Unknown" case None => "Unknown"
} }
val (read, write) = (listener.hasShuffleRead(s.id), listener.hasShuffleWrite(s.id)) val (read, write) = (listener.hasShuffleRead(s.id), listener.hasShuffleWrite(s.id))
val shuffleString = (read, write) match { val shuffleInfo = (read, write) match {
case (true, true) => "Read/Write" case (true, true) => "Read/Write"
case (true, false) => "Read" case (true, false) => "Read"
case (false, true) => "Write" case (false, true) => "Write"
...@@ -65,7 +66,13 @@ class IndexPage(parent: JobProgressUI) { ...@@ -65,7 +66,13 @@ class IndexPage(parent: JobProgressUI) {
case _ => case _ =>
}} }}
</td> </td>
<td>{shuffleString}</td> <td>{shuffleInfo}</td>
<td>{if (s.rdd.getStorageLevel != StorageLevel.NONE) {
<a href={"/storage/rdd?id=%s".format(s.rdd.id)}>
{Option(s.rdd.name).getOrElse(s.rdd.id)}
</a>
}}
</td>
</tr> </tr>
} }
} }
...@@ -65,7 +65,7 @@ class RDDPage(parent: BlockManagerUI) { ...@@ -65,7 +65,7 @@ class RDDPage(parent: BlockManagerUI) {
</div> </div>
<hr/> ++ {workerTable}; <hr/> ++ {workerTable};
headerSparkPage(content, "RDD Info: " + id) headerSparkPage(content, "RDD Info: " + rddInfo.name)
} }
def blockRow(blk: (String, BlockStatus)): Seq[Node] = { def blockRow(blk: (String, BlockStatus)): Seq[Node] = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment