RDD Transformations

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进行重新分区,并在每个生成的分区中按键对记录进行排序。 这比调用重新分区,然后在每个分区内进行排序更有效率,因为它可以将排序压入洗牌机器。

发布了147 篇原创文章 · 获赞 24 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_36535820/article/details/103822701
rdd