前面已经给大家讲过RDD原理以及常用的转换算子,今天就再给大家说说RDD的动作算子有哪些,以便大家更能全面的理解和掌握。
对于动作算子来说,本质上动作算子是通过SparkContext执行提交作业操作,触发RDD DAG(有向无环图)的执行;所有的动作算子都是急迫型(non-lazy),RDD遇到Action就会立即计算。
常用动作算子
count
- 返回数据集中的元素的个数
案例:
val rdd=sc.parallelize(List(1,2,3,4,5,6))
rdd.count
//6
countByKey
- 针对(K,V)类型的RDD,返回一个(K,Int)的map,表示每一个key对应的元素个数。
案例:
val rdd = sc.parallelize(List((1,3),(1,2),(1,4),(2,3),(3,6),(3,8)),3)
rdd.countByKey
//scala.collection.Map[Int,Long] = Map(3 -> 2, 1 -> 3, 2 -> 1)
countByValue
- 根据数据集每个元素相同的内容来计数。返回相同内容的元素对应的条数。
案例:
val rdd = sc.parallelize(List((1,3),(1,2),(1,4),(2