map(func) | 根据传入的函数处理原有的RDD对象中每一个元素,每一个新元素处理完成后返回一个对象,这些新对象组装得到一个新的RDD,新的RDD和旧的RDD元素都是一一对应的 |
filter(func) | 根据传入的函数来过滤RDD中每一个元素,通过过滤条件的的元素组成一个新的RDD |
flatMap(func) | 先进行map操作,然后把map操作得到的结果合并为一个对象,假如map操作返回的是Array[Array[String]],那flatMap操作得到的应该是Array[String],自动将多个字符串数组合并为一个,另外一个意义是一个旧的RDD元素可以生成多个新元素,一对多的关系 |
mapPartitions(func) | 可以将其看成map,但是他处理的是每个单独分区中的数据,然后把各个分区的值合并 |
mapPartitionsWithIndex(func) | 把分区的索引值(index)交给输入函数处理 |
sample(withReplacement, fraction, seed) | 取样函数,分放回和不放回,由withReplacement参数决定,fraction:抽样率 |
union(otherDataset) | 两个RDD合并,不去重 |
intersection(otherDataset) | 两个RDD交集且去重 |
distinct([numTasks])) | 去重 |
groupByKey([numTasks]) | 根据key来分组,同一个key的值放在一个集合中 |
reduceByKey(func, [numTasks]) | 将key对应的值交给传入的函数处理 |
aggregateByKey(zeroValue)(seqOp, combOp, [numTasks]) | 对key对应的值做聚合计算,返回的还是Pair RDD对象 |
sortByKey([ascending], [numTasks]) | PairRDD以key值进行排序 |
join(otherDataset, [numTasks]) | sql语句中内关联 |
cogroup(otherDataset, [numTasks]) | SQL中的全外关联full outer join |
cartesian(otherDataset) | 两个RDD进行笛卡尔集的操作,返回CartesianRDD |
pipe(command, [envVars]) | 将RDD的每个数据分片都接到shell-command的标准输入上。经过shell-command的输出数据会重新生成新的RDD,新RDD是string类型的RDD |
coalesce(numPartitions) | 合并分区,参数执行合并后的分区大小 |
repartition(numPartitions) | 进行shuffle的coalesce操作 |
repartitionAndSortWithinPartitions(partitioner) | 该方法依据partitioner对RDD进行分区,并且在每个结果分区中按key进行排序;通过对比sortByKey发现,这种方式比先分区,然后在每个分区中进行排序效率高,这是因为它可以将排序融入到shuffle阶段 |