分为:
Transformation(变换)
Transformation | Meaning |
---|---|
map | 应用于RDD每一个元素,返回值是新的RDD |
flatMap | 扁平化map,对RDD每个元素转换, 然后再扁平化处理 |
filter | 过滤掉不符合元素,返回的都是新的RDD |
mapPartitions | 与map类似,映射map函数的参数由RDD中每一个参数转变为RDD中的每一个分区的迭代器 |
mapPartitionsWithIndex | 作用同mapPartitions,不过提供两个参数,第一个参数为分区的索引 |
union | 并集 也可用++实现 |
intersection | 交集 |
subtract | 差集 |
distinct | 没有参数,将RDD元素去重操作 |
groupByKey | 要求操作的元素必须是个二元的tuple,tuple._1是key,tuple._2是value |
aggregateByKey(zeroValue)(func1,func2) | zeroValue:初始值参与func1运算,分区内按key分组,分组的值进行func1计算,再将每个分区每组的计算结果按func2进行计算 |
sortbyKey | 按key分组 |
join | (k,v),(k,w)=> (k,(v,w)) |
cartesian | 参数为RDD,求两个RDD的 笛卡尔积(两集合中个成员的相互结合) |
coalesce | 扩大缩小分区,rdd.coalesce(3,true),true扩大分区,缩小分区默认为false,不需指定 |
repartition | 等价于coalesce |
partitionBy | 要求是(k,v) |
Action(执行)
Action | meaning |
---|---|
reduce | l并行整合所有RDD操作,例如求和操作 |
collect | 返回所有RDD数据,将分布式不同分区的RDD数据获取到一起组成数组返回,生产环境慎用 |
count | 统计RDD元素数 |
first | similar take(1) |
take | 获取前几个数据 |
takeOrdered(n) | 将RDD进行升序排序然后取前n个 |
top | 将RDD降序排序,取前n个 |
saveAsTextFile | 按照文本形式保存分区数据 |
countByKey | type(k,v)=>(k,int) |
foreach |