2.1
特点:懒执行
(1)map
map的输入变换函数应用于RDD中所有元素
(2)flatMap
flatMap与map区别在于map为“映射”,而flatMap“先映射,后扁平化”,map对每一次(func)都产生一个元素,返回一个对象,而flatMap多一步就是将所有对象合并为一个对象。
(3)flatMapValues
每个元素的Value被输入函数映射为一系列的值,然后这些值再与原RDD中的Key组成一系列新的KV对。
代码
x = sc.parallelize([("a", ["x", "y", "z"]), ("b", ["p", "r"])])
def f(x): return x
x.flatMapValues(f).collect()
打印结果
[('a', 'x'), ('a', 'y'), ('a', 'z'), ('b', 'p'), ('b', 'r')]
filter
过滤操作,满足filter内function函数为true的RDD内所有元素组成一个新的数据集。
(4)groupByKey
主要作用是将相同的所有的键值对分组到一个集合序列当中,其顺序是不确定的。
(5)reduceByKey
与groupByKey类似,却有不同。如(a,1), (a,2), (b,1), (b,2)。groupByKey产生中间结果为( (a,1), (a,2) ), ( (b,1), (b,2) )。而reduceByKey为(a,3), (b,3)。
reduceByKey主要作用是聚合,groupByKey主要作用是分组。
(6)take