1、转换(transformation)
转换(transformation):即从现有的数据集创建一个新的数据集,返回一个新的RDD 的操作。Transformation都是惰性的,它们并不会直接计算结果。它们只是记住了这些应用到基础数据集上的转换动作。只有当发生一个要求返回结果给Driver的Action时,这些Transformation才会真正运行。
RDD支持的常用Transformation如下:
map()、filter()、flatMap(func)、mapPartitions(func)、mapPartitionsWithSplit(func)、sample(withReplacement,fraction,seed)、union(otherDataSet)、distinct([numTasks])、groupByKey([numTasks])、reduceByKey(func,[numTasks])、sortByKey([[ascending],numTasks])、join(otherDataset0,[numTasks])、cogroup(otherDataset,[numTasks])、cartesain(ohterDataset)
2、动作(action)
动作(action),即在数据集上进行计算后,返回一个值给Driver程序。
count()、first()、reduce(func)、collect()、take(n)、takeSample(withReplacement,num,seed)、saveAsTextFile(path)、saveAsSequenceFile(path)、countByKey()、foreach(func)
注:如果对于一个特定的函数是属于转化操作还是行动操作感到困惑,你可以看看它的返回值类型:转化操作返回的是RDD,而行动操作返回的是其他的数据类型。