[ https://issues.apache.org/jira/browse/SPARK-2331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14048884#comment-14048884 ]
Ian Hummel commented on SPARK-2331: ----------------------------------- Hi Sean, The code I was testing was actually equivalent to your second example. I'm not sure if this is a covariance issue or not though, because both the RDD and the EmptyRDD above are parameterized by type {{String}}. Most of other RDD methods return {{RDD[T]}} explicitly. Compare the functions below {monospace} /** Build the union of a list of RDDs. */ def union[T: ClassTag](rdds: Seq[RDD[T]]): RDD[T] = new UnionRDD(this, rdds) /** Build the union of a list of RDDs passed as variable-length arguments. */ def union[T: ClassTag](first: RDD[T], rest: RDD[T]*): RDD[T] = new UnionRDD(this, Seq(first) ++ rest) /** Get an RDD that has no partitions or elements. */ def emptyRDD[T: ClassTag] = new EmptyRDD[T](this) {monospace} Is it really just a case of forgetting to annotate the return type properly? > SparkContext.emptyRDD has wrong return type > ------------------------------------------- > > Key: SPARK-2331 > URL: https://issues.apache.org/jira/browse/SPARK-2331 > Project: Spark > Issue Type: Bug > Affects Versions: 1.0.0 > Reporter: Ian Hummel > > The return type for SparkContext.emptyRDD is EmptyRDD[T]. > It should be RDD[T]. That means you have to add extra type annotations on > code like the below (which creates a union of RDDs over some subset of paths > in a folder) > val rdds = Seq("a", "b", "c").foldLeft[RDD[String]](sc.emptyRDD[String]) { > (rdd, path) ⇒ > rdd.union(sc.textFile(path)) > } -- This message was sent by Atlassian JIRA (v6.2#6252)