In my project I extend a new RDD type that wraps another RDD and some metadata. The code I use is similar to FilteredRDD implementation:
case class PageRowRDD( self: RDD[PageRow], @transient keys: ListSet[KeyLike] = ListSet() ){ override def getPartitions: Array[Partition] = firstParent[PageRow].partitions override val partitioner = self.partitioner override def compute(split: Partition, context: TaskContext) = firstParent[PageRow].iterator(split, context) } However when I try to persist and reuse it in 2 transformations. My logs and debug shows that it is being computed twice, rather than being reused in memory. The problem is: there is no such problem for FilteredRDD. How do I avoid this? -- View this message in context: http://apache-spark-user-list.1001560.n3.nabble.com/How-to-extend-an-one-to-one-RDD-of-Spark-that-can-be-persisted-tp20394.html Sent from the Apache Spark User List mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@spark.apache.org For additional commands, e-mail: user-h...@spark.apache.org