spark-5.sparkcore_2_RDD的创建与类型

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章