Spark RDD(二) RDD的相关行为(Action)操作
Action操作会真正触发转换逻辑(转换操作参见上一篇Spark RDD(一))。本文主要介绍常见的Action操作。
常见Action操作有以下9种:
- collect()
- count()
- first()
- take(n)
- reduce(func)
- takeSample(withReplacement, n, [seed])
- takeOrdered(n, [ordering])
- top(n, [ordering])
- saveAsTextFile(path)
collect()
操作
collect()
会从RDD的每一个partition中手机所有行数据并发送给driver程序。要注意不要对太多数据执行此操作,否则driver程序会报OOM。
例子:
val numberRDD = spark.sparkContext.parallelize(List(1,2,3,4,5,6,7,8,9,10), 2)
numberRDD.collect()
输出为:
Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
count()
操作
count()
操作通过获取每一个partition中的行数并求和来获得一个RDD的行数。
例子:
val numberRDD = spark.sparkContext.par