RDD的基本操作主要有转换(Transformation)操作和行动(Action)操作。
Transformation操作是指从新的数据集中将数据集的每一个元素传递给函数,并返回一个新的分布数据集表示结果。而Action操作后,RDD不再是数据集,而是一个值,并将该值返回给驱动程序,如Reduce是一个动作,通过一些函数将所有元素叠加起来,并将最终结果返回给Driver程序。
RDD的Transformation操作是有惰性的,不会立即执行,需要Action操作触发。RDD的这种设计既可以避免很多无用的行为,也可以更加高效地运行。驱动程序最终关注的是Action操作后的结果,而不是中间的数据集。例如,通过map()函数转换而来的新数据集将count()的结果给驱动程序,而不是整个过程数据集。
1)Transformation
Transformation操作包括map、Filer、Distinct、Sample等。
(1)map操作将RDD[T]中每个元素进行函数运算、映射,生成RDD。
(2)Filter操作返回一个RDD,包含了所有满足过滤条件的元素。
(3)Distinct操作返回RDD中所有相异的元素,排除相同的元素。经过Distinct操作后,每个数据将只出现一次。
(4)Sample操作从数据中抽取一定比例的数据子集。
其他操作还包括Union操作、Coalesce操作、Repartition操作、Mappartitions操作、Join操作等。(www.xing528.com)
2)Action
Action操作包括以下内容。
(1)创建新的RDD,代码如下:
(2)将RDD保存为本地集合,代码如下:
(3)返回前k个元素,代码如下:
(4)计算元素的总数,代码如下:
(5)合并集合元素,代码如下:
(6)将RDD写入HDFS,代码如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。