From f91e1c48224366c9cf7a32e99d67e966e540b86b Mon Sep 17 00:00:00 2001
From: Patrick Wendell <pwendell@gmail.com>
Date: Fri, 21 Jun 2013 15:11:42 -0700
Subject: [PATCH] Linking RDD information when available in stages

---
 core/src/main/scala/spark/ui/jobs/IndexPage.scala  | 13 ++++++++++---
 core/src/main/scala/spark/ui/storage/RDDPage.scala |  2 +-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/core/src/main/scala/spark/ui/jobs/IndexPage.scala b/core/src/main/scala/spark/ui/jobs/IndexPage.scala
index 0174e1ddd1..8ebde7a379 100644
--- a/core/src/main/scala/spark/ui/jobs/IndexPage.scala
+++ b/core/src/main/scala/spark/ui/jobs/IndexPage.scala
@@ -10,6 +10,7 @@ import scala.Some
 
 import spark.scheduler.Stage
 import spark.ui.UIUtils._
+import spark.storage.StorageLevel
 
 import xml.{NodeSeq, Node}
 
@@ -20,7 +21,7 @@ class IndexPage(parent: JobProgressUI) {
 
   def render(request: HttpServletRequest): Seq[Node] = {
     val stageHeaders = Seq("Stage ID", "Origin", "Submitted", "Duration", "Tasks: Complete/Total",
-                           "Shuffle Activity")
+                           "Shuffle Activity", "RDDs")
     val activeStages = listener.activeStages.toSeq
     val completedStages = listener.completedStages.toSeq
 
@@ -46,7 +47,7 @@ class IndexPage(parent: JobProgressUI) {
       case None => "Unknown"
     }
     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, false) => "Read"
       case (false, true) => "Write"
@@ -65,7 +66,13 @@ class IndexPage(parent: JobProgressUI) {
         case _ =>
       }}
       </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>
   }
 }
diff --git a/core/src/main/scala/spark/ui/storage/RDDPage.scala b/core/src/main/scala/spark/ui/storage/RDDPage.scala
index 7628fde4aa..466f4643bc 100644
--- a/core/src/main/scala/spark/ui/storage/RDDPage.scala
+++ b/core/src/main/scala/spark/ui/storage/RDDPage.scala
@@ -65,7 +65,7 @@ class RDDPage(parent: BlockManagerUI) {
         </div>
           <hr/> ++ {workerTable};
 
-    headerSparkPage(content, "RDD Info: " + id)
+    headerSparkPage(content, "RDD Info: " + rddInfo.name)
   }
 
   def blockRow(blk: (String, BlockStatus)): Seq[Node] = {
-- 
GitLab