转换操作是返回新的RDD操作,转换操作是惰性的。

常用转换操作

对一个数据为{1,2,3,3}的RDD进行基本的RDD转化操作

函数 操作 例子 结果
map 将函数应用于RDD中的每个元素,返回值构成新的RDD rdd.map(x => x+1) {2,3,4,4}
flatmap 将函数应用于RDD中的每个元素,返回迭代器的所有元素构成新的RDD。通常用来切分单词 rdd.flatmap(x = x.to(3)) {1,2,3,2,3,3,3}
filter 将返回一个由通过传给filter的函数组成的RDD rdd.filter(x => x != 1) {2,3,3}
distinct 去重 rdd.distinct() {1,2,3}
sample(withReplacement,fraction,[seed]) 对RDD采样,以及是否替换 rdd.sample(false,0.5) 非确定的

分别为{1,2,3}和{3,4,5}的RDD进行针对两个 RDD的转换操作

函数 操作 例子 结果
union 生成一个包含两个RDD中所有元素的RDD rdd.union(other) {1,2,3,3,4,5}
intersection 求两个RDD共同元素的RDD rdd.intersection(other) {3}
subtract 移除一个RDD中的内容 rdd.subtract(other) {1,2}
cartesian 与另一个RDD的笛卡尔积 rdd.cartesian(other) {(1,3),(1,4),(1,5),(2,3),…,(3,5)}