Action:对数据集计算后返回一个数值value给驱动程序
RDD支持的动作如下:
1、reduce(func) :通过函数func(接受两个参数,返回一个参数)聚集数据集中的所有元素。这个功能必须可交换且可关联的,从而可以正确地并行执行。
2、collect() :在驱动程序中,以数组的形式返回数据集的所有元素。通常在使用filter或者其他操作返回一个足够小的数据子集后再使用会比较有用。
3、count() :返回数据集的元素个数。
4、first() :返回数据集的第一个元素(类似于take(1))
5、take(n) :返回一个由数据集的前n个元素组成的数组 (这个操作目前并非并行执行,而是由驱动程序计算所有的元素)
6、takeSample(withReplacement,num,seed) : 返回一个数组,该数组由从数据集中随机采样的num个元素组成,可以选择是否随机数替换不足的部分,seed用于指定随机数生成种子
7、saveAsTextFile(path) :将数据集的元素以textfile的形式保存到本地文件系统--HDFS或者其他任何hadoop支持的文件系统。对于每个元素,spark将会调用toString方法,将它转换为文件中的文本行
8、saveAsSequenceFile(path):将数据集的元素以hadoop sequencefile的格式保存到指定的目录下,可以是本地系统、HDFS或者任何其他Hadoop支持的文件系统。这个只限于有key-value对组成,并实现了hadoop的writable接口,或者可以隐式地转换为Writable的RDD(Spark保存了基本类型的转换,例如Int,Double,String等)。
9、countByKey() : 对(K,V)类型的RDD有效,返回一个(K,Int)对的map,表示每一个key对应的元素个数
10、foreach(func) : 在数据集的每一个元素上,运行函数func进行更新。通常用于边缘效果,例如更细一个累加器,或者和外部存储系统进行交互,例如Hbase。