From b45857c965219e2d26f35adb2ea3a2b831fdb77f Mon Sep 17 00:00:00 2001
From: Stephen Haberman <stephen@exigencecorp.com>
Date: Mon, 28 Jan 2013 23:56:56 -0600
Subject: [PATCH] Add RDD.toDebugString.

Original idea by Nathan Kronenfeld.
---
 core/src/main/scala/spark/RDD.scala | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/core/src/main/scala/spark/RDD.scala b/core/src/main/scala/spark/RDD.scala
index 0d3857f9dd..172431c31a 100644
--- a/core/src/main/scala/spark/RDD.scala
+++ b/core/src/main/scala/spark/RDD.scala
@@ -638,4 +638,14 @@ abstract class RDD[T: ClassManifest](
   protected[spark] def clearDependencies() {
     dependencies_ = null
   }
+
+  /** A description of this RDD and its recursive dependencies for debugging. */
+  def toDebugString(): String = {
+    def debugString(rdd: RDD[_], prefix: String = ""): Seq[String] = {
+      Seq(prefix + rdd) ++ rdd.dependencies.flatMap(d => debugString(d.rdd, prefix + "  "))
+    }
+    debugString(this).mkString("\n")
+  }
+
+  override def toString() = "%s[%d] at %s".format(getClass.getSimpleName, id, origin)
 }
-- 
GitLab