aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/spark/rdd/PipedRDD.scala
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/scala/spark/rdd/PipedRDD.scala')
-rw-r--r--core/src/main/scala/spark/rdd/PipedRDD.scala9
1 files changed, 5 insertions, 4 deletions
diff --git a/core/src/main/scala/spark/rdd/PipedRDD.scala b/core/src/main/scala/spark/rdd/PipedRDD.scala
index d54579d6d1..d9293a9d1a 100644
--- a/core/src/main/scala/spark/rdd/PipedRDD.scala
+++ b/core/src/main/scala/spark/rdd/PipedRDD.scala
@@ -12,6 +12,7 @@ import spark.OneToOneDependency
import spark.RDD
import spark.SparkEnv
import spark.Split
+import java.lang.ref.WeakReference
/**
@@ -19,16 +20,16 @@ import spark.Split
* (printing them one per line) and returns the output as a collection of strings.
*/
class PipedRDD[T: ClassManifest](
- @transient prev: RDD[T],
+ prev: WeakReference[RDD[T]],
command: Seq[String],
envVars: Map[String, String])
- extends RDD[String](prev) {
+ extends RDD[String](prev.get) {
- def this(@transient prev: RDD[T], command: Seq[String]) = this(prev, command, Map())
+ def this(prev: WeakReference[RDD[T]], command: Seq[String]) = this(prev, command, Map())
// Similar to Runtime.exec(), if we are given a single string, split it into words
// using a standard StringTokenizer (i.e. by spaces)
- def this(@transient prev: RDD[T], command: String) = this(prev, PipedRDD.tokenize(command))
+ def this(prev: WeakReference[RDD[T]], command: String) = this(prev, PipedRDD.tokenize(command))
override def splits = firstParent[T].splits