value类型
map
val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")
val sc = new SparkContext(conf)
val rdd: RDD[Int] = sc.makeRDD(1 to 4)
val rdd1: RDD[Int] = rdd.map(_ * 3)
rdd1.collect().foreach(println)
sc.stop()
mappartitions
val rdd: RDD[Int] = sc.makeRDD( 1 to 50,2)
val rdd2: RDD[Int] = rdd.mapPartitions(_.map( _ * 2 ))
rdd2.saveAsTextFile("out")
mapPartitionsWithIndex
val rdd: RDD[Int] = sc.makeRDD(1 to 10 , 2)
val rdd1: RDD[(Int, Int)] = rdd.mapPartitionsWithIndex((index,items) =>items.map((index,_)))
rdd1.collect().foreach(println)
flatmap 扁平化
val rdd: RDD[String] = sc.textFile("D://DATAS//data.txt",2)
val rdd2: RDD[String] = rdd.flatMap(_.split(" "))
rdd2.collect().foreach(println)
glom
val rdd: RDD[Int] = sc.makeRDD(1 to 20,3)
val rdd1: RDD[Array[Int]] = rdd.glom()
val rdd2: RDD[Int] = rdd1.map(_.max)
println(rdd2.collect().sum)
groupby
val rdd: RDD[String] = sc.textFile("input/1.txt",2)
val rdd1: RDD[String] = rdd.flatMap(_.split(" "))
val rdd2: RDD[(String, Iterable[String])] = rdd1.groupBy(_.substring(0,1))
val rdd3: RDD[(String, Int)] = rdd2.map(data => {
val key: String = data._1
val value: Int = data._2.size
(key, value)
})
rdd3.collect().foreach(println)
filter
val rdd: RDD[String] = sc.textFile("input/1.txt")
val rdd2: RDD[String] = rdd.flatMap(_.split(" ")).filter(_.contains("he"))
rdd2.collect().foreach(println)
sample
val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4,5,6,7,8,9))
val rdd1: RDD[Int] = rdd.sample(true,3,5)
rdd1.collect().foreach(println)
distinct
val rdd: RDD[Int] = sc.makeRDD(List(1,3,4,3,6,7,5,4,2,4,5,6,7,3,3,4))
rdd.distinct().collect().foreach(println)
coalesce 合并分区
val rdd: RDD[Int] = sc.makeRDD(Array(1, 2, 3, 4, 5, 6), 3)
val rdd1: RDD[Int] = rdd.coalesce(2,true)
rdd1.mapPartitionsWithIndex((index,iteams)=>iteams.map((index,_))).collect().foreach(println)
repartition 重新分区
val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4,5,6,7,8),2)
val rdd1: RDD[(Int, Int)] = rdd.repartition(4) .mapPartitionsWithIndex((index,iteams)=>iteams.map((index,_)))
rdd1.collect().foreach(println)
sortBy
val rdd: RDD[Int] = sc.makeRDD(List(2, 1, 3, 4, 6, 5))
rdd.sortBy(data => data,false).collect().foreach(println)