RDD转换列表
Transformation |
含义 |
map(func) |
返回一个新的分布式数据集,通过传递函数func中的每个元素来形成。 |
filter(func) |
返回通过选择func返回true的源的那些元素形成的新数据集。 |
faltMap(func) |
与map类似,但是每个输入项可以映射到0个或更多的输出项(所以func应该返回一个Seq而不是单个项)。 |
mapPartitions(func) |
与map类似,但是在RDD的每个分区(块)上分别运行,当运行类型为T的RDD时,func必须是Iterator <T> => Iterator <U>类型。 |
mapPartitionsWithIndex(func) |
与map分区类似,但也为表示分区索引的整数值提供了func,所以当在T型RDD上运行时,func的类型必须是(Int,Iterator <T>)=> Iterator <U>。 |
Sample(withReplacement,fraction,seed) |
使用给定的随机数生成器种子对部分数据进行采样,包括或不包括替换。 |
union(otherDataset) |
返回包含源数据集中的元素和参数的联合的新数据集。 |
intersection(otherDataset) |
返回一个新的RDD,其中包含源数据集中的元素与参数的交集。 |
distinct([numTasks]) |
返回包含源数据集的不同元素的新数据集。 |
groupByKey([numTasks]) |
当调用(K,V)对的数据集时,返回(K,Iterable <V>)对的数据集。 注意:如果您正在进行分组以执行每个键的聚合(例如总和或平均),则使用reduceByKey或aggregateByKey会产生更好的性能。 |
reduceByKey(func,[numTasks]) |
在(K,V)对的数据集上调用时,返回(K,V)对的数据集,其中每个键的值使用给定的reduce函数func进行聚合,该函数必须是(V,V)=> V.与groupByKey一样,reduce任务的数量可通过可选的第二个参数进行配置。 |
aggregateByKey(zeroValue)(seqOp,combOp,[numTasks]) |
当调用(K,V)对的数据集时,返回(K,U)对的数据集,其中每个键的值使用给定的组合函数和中性“零”值进行聚合。 允许与输入值类型不同的聚合值类型,同时避免不必要的分配。 和groupByKey一样,reduce任务的数量可以通过可选的第二个参数来配置。 |
sortByKey([ascending],[numTasks]) |
当调用K实现Ordered的(K,V)对的数据集时,按照布尔上升参数中的指定,按照升序或降序顺序返回按键排序的(K,V)对的数据集。 |
join(otherDataset,[numTasks]) |
在类型(K,V)和(K,W)的数据集上调用时,返回包含每个键的所有元素对的(K,(V,W))对的数据集。 外连接通过leftOuterJoin,rightOuterJoin和fullOuterJoin支持。 |
cogroup(otherDataset,[numTasks]) |
在类型(K,V)和(K,W)的数据集上调用时,返回(K,(Iterable <V>,Iterable <W>))元组的数据集。这个操作也叫做Group With。 |
cartesian(otherDataset) |
当调用类型T和U的数据集时,返回(T,U)对(所有元素对)的数据集。 |
pip(command,[envVars]) |
通过shell命令管理RDD的每个分区,例如, 一个Perl或bash脚本。 RDD元素被写入进程的stdin,输出到stdout的行作为字符串的RDD返回。 |
coalesce(numPartitions) |
减少RDD中的分区数量为numPartitions。 用于过滤大型数据集后更高效地运行操作。 |
repartition(numPartitions) |
随机调整RDD中的数据以创建更多或更少的分区并在其间进行平衡。 这总是通过网络混洗所有数据。 |
repartitionAndSortWithinPartitions(partitioner) |
根据给定的分区程序对RDD进行重新分区,并在每个生成的分区中按键对记录进行排序。 这比调用重新分区,然后在每个分区内进行排序更有效率,因为它可以将排序压入洗牌机器。 |