1.RDD的創建
1).從集合中創建RDD。
方法1
def makeRDD[T: ClassTag]( seq: Seq[T], numSlices: Int = defaultParallelism): RDD[T]
standalone模式下的並行度defaultParallelism:conf.getInt(“spark.default.parallelism”, math.max(totalCoreCount.get(), 2))
方法2
def parallelize[T: ClassTag](seq: Seq[T],numSlices: Int = defaultParallelism): RDD[T]
方法3
def makeRDD[T: ClassTag](seq: Seq[(T, Seq[String])]): RDD[T]
可以爲單個數據對象設置存放的節點。
例如:
scala> sc.makeRDD(Array((1,List("slave01")),(2,List("slave02"))))
2).從外部存儲創建RDD。
將HDFS中的RELEASE文件導入到spark。
val data= sc.textFile("hdfs://master:9000/RELEASE")
3).從其它RDD轉換。
2.RDD的類型
1)數值型RDD,單個值的類型。
RDD[Int]、RDD[(Int,Int)] 、RDD[(Int,(Int,Int))]
源碼文件:RDD.scala
2)鍵值對RDD
RDD[(Int,Int)]、RDD[(Int,(Int,Int))]
源碼文件:PairRDDFunctions.scala
注:所有鍵值對RDD都可以使用數據型RDD的操作。