1.reduce

函数签名 def reduce(f: (T, T) => T): T �

2.collect

将不同分区的数据按照分区顺序采集到Driver端内存中,形成数组

3.count

返回RDD中元素个数

4.first()

返回RDD第一个元素

5.take()

获取 n个数据

6.takeOrdered()

调用此方法会先排序,再取n个元素

7.aggregate()

  1. val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4),2)
  2. val res: Int = rdd.aggregate(10)(_ + _, _ + _)
  3. println(res)

image.png

🤔 思考:为什么会等于40而不是30?
在aggregate中初始值10不仅仅会参加分内计算 还参与分区间计算

计算过程:
分区0 10+1+2 => 13 合并: 10+13+17 =40
分区1 10+3+4 => 17

8 fold

当分区内和分区间的计算方式相同时

9.countByKey()

针对K-V数据源:来自对Key的统计

9.countByValue()

针对Value数据源:来自对Value的统计

10.saveAsTextFile()

11.foreach()

rdd.collect().foreach(println)
image.png

rdd.foreach(println)
image.png

image.png