collect() / collectAsMap()
stats / count / mean / stdev / max / min
// 返回统计信息。仅能作用 RDD[Double] 类型上调用
val rdd1 = sc.range(1, 101)
rdd1.stats
val rdd2 = sc.range(1, 101)
// 不能调用
rdd1.zip(rdd2).stats
// count在各种类型的RDD上,均能调用
rdd1.zip(rdd2).count
reduce(func) / fold(func) / aggregate(func)
scala> rdd1.reduce(_+_)
res39: Long = 5050
scala> rdd1.fold(1)(_+_)
res41: Long = 5063
## 定义初值 1,每个分区局部汇总+初值,全局汇总+初值 加了13次
scala> rdd1.getNumPartitions
res42: Int = 12
scala> rdd1.aggregate(1l)(_+_,_+_)
res44: Long = 5063
first():Return the first element in this RDD
take(n):Take the first num elements of the RDD
top(n):按照默认(降序)或者指定的排序规则,返回前num个元素。
scala> rdd1.first
res46: Long = 1
scala> rdd1.take(5)
res47: Array[Long] = Array(1, 2, 3, 4, 5)
scala> rdd1.top(5)
res48: Array[Long] = Array(100, 99, 98, 97, 96)
takeSample(withReplacement, num, [seed]):返回采样的数据
scala> rdd1.takeSample(true, 4)
res50: Array[Long] = Array(86, 86, 56, 99)
scala> rdd1.takeSample(false, 4)
res51: Array[Long] = Array(91, 34, 18, 52)
foreach(func) / foreachPartition(func):与map、mapPartitions类似,区别是 foreach 是 Action
scala> rdd1.foreach(x => println(x))
12
13
....
saveAsTextFile(path) / saveAsSequenceFile(path) / saveAsObjectFile(path)
scala> rdd1.saveAsTextFile("/aa/x.txt")