无法将Array RDD转换为Spark中的List RDD

时间:2016-08-25 12:15:16

标签: apache-spark

如何将Array [String] RDD转换为List [String] RDD?

scala> val linesRDD = sc.textFile("/user/inputfiles/records.txt")
linesRDD: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[9] at textFile at <console>:21

scala> linesRDD.collect
res17: Array[String] = Array(100,surender,CTS,CHN, 101,ajay,CTS,BNG, 102,kumar,TCS,BNG, 103,Ankit,CTS,CHN, 104,Sukanya,TCS,BNG

scala> linesRDD.toList
<console>:24: error: value toList is not a member of org.apache.spark.rdd.RDD[String]
          linesRDD.toList

如您所见,它会引发错误。

但是,如果您可以在下面看到,如果我应用了一个采取行动,然后应用 toList 工作

scala> linesRDD.take(2).toList
res19: List[String] = List(100,surender,CTS,CHN, 101,ajay,CTS,BNG)

如何将Array [String] RDD转换为List [String] RDD?

1 个答案:

答案 0 :(得分:1)

异常非常清楚,您正在尝试应用RDD类中不存在的方法。

  

错误:值toList不是其成员   org.apache.spark.rdd.RDD [字符串]             linesRDD.toList

但是,要解决此问题,您可以collect然后使用toList。 BTW不要忘记,当收集数据时,所有数据都会被移动到驱动程序,如果它不适合,那么您将收到异常。

linesRDD.collect.toList