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的操作。