From b3517614d85a7490f8369681620b54d3fd325596 Mon Sep 17 00:00:00 2001
From: Justin Ma <jtma@eecs.berkeley.edu>
Date: Thu, 7 Oct 2010 14:38:25 -0700
Subject: [PATCH] Added toString() methods to UnionSplit, SeededSplit and
 CartesianSplit to ensure that the proper keys will be generated when they
 cached.

---
 src/scala/spark/RDD.scala | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/scala/spark/RDD.scala b/src/scala/spark/RDD.scala
index aaf006b6cb..5236eb958f 100644
--- a/src/scala/spark/RDD.scala
+++ b/src/scala/spark/RDD.scala
@@ -165,7 +165,10 @@ extends RDD[Array[T]](prev.sparkContext) {
 }
 
 
-@serializable class SeededSplit(val prev: Split, val seed: Int) extends Split {}
+@serializable class SeededSplit(val prev: Split, val seed: Int) extends Split {
+  override def toString() =
+    "SeededSplit(" + prev.toString + ", seed " + seed + ")"
+}
 
 class SampledRDD[T: ClassManifest](
   prev: RDD[T], withReplacement: Boolean, frac: Double, seed: Int) 
@@ -268,6 +271,7 @@ private object CachedRDD {
 abstract class UnionSplit[T: ClassManifest] extends Split {
   def iterator(): Iterator[T]
   def preferredLocations(): Seq[String]
+  def toString(): String
 }
 
 @serializable
@@ -276,6 +280,8 @@ class UnionSplitImpl[T: ClassManifest](
 extends UnionSplit[T] {
   override def iterator() = rdd.iterator(split)
   override def preferredLocations() = rdd.preferredLocations(split)
+  override def toString() =
+    "UnionSplitImpl(" + split.toString + ")"
 }
 
 @serializable
@@ -297,7 +303,10 @@ extends RDD[T](sc) {
     s.asInstanceOf[UnionSplit[T]].preferredLocations()
 }
 
-@serializable class CartesianSplit(val s1: Split, val s2: Split) extends Split
+@serializable class CartesianSplit(val s1: Split, val s2: Split) extends Split {
+  override def toString() =
+    "CartesianSplit(" + s1.toString + ", " + s2.toString + ")"
+}
 
 @serializable
 class CartesianRDD[T: ClassManifest, U:ClassManifest](
-- 
GitLab