spark算子

Transformations类算子

Transformations含义
map返回一个新的分布式数据集,该数据集是通过将源的每个元素传递给函数func形成的
filter返回一个新的数据集,该数据集是通过选择源中func返回true的那些元素形成的。
flatMap与map相似,但是每个输入项都可以映射到0个或多个输出项(因此func应该返回Seq而不是单个项)。
mapPartitions与map相似,但是分别在RDD的每个分区(块)上运行,因此func在类型T的RDD上运行时必须为Iterator => Iterator <U>类型。
mapPartitionsWithIndex与mapPartitions相似,但它还为func提供表示分区索引的整数值,因此当在类型T的RDD上运行时,func必须为(Int,Iterator )=> Iterator <U>类型。
sample试分数分数的数据的,具有或不具有替换,使用给定的随机数发生器的种子。
union返回一个新的数据集,其中包含源数据集中的元素和参数的并集。
intersection返回一个新的RDD,其中包含源数据集中的元素和参数的交集。
distinct返回一个新的数据集,其中包含源数据集的不同元素。
groupByKey在(K,V)对的数据集上调用时,返回(K,Iterable )对的数据集。注意:如果要分组以便对每个键执行聚合(例如求和或平均值),则使用reduceByKeyaggregateByKey将产生更好的性能。注意:默认情况下,输出中的并行度取决于父RDD的分区数。您可以传递一个可选numPartitions参数来设置不同数量的任务。
reduceByKey在(K,V)对的数据集上调用时,返回(K,V)对的数据集,其中每个键的值使用给定的reduce函数func进行汇总,该函数必须为(V,V)=> V.与in一样groupByKey,reduce任务的数量可以通过可选的第二个自变量配置。
aggregateByKey在(K,V)对的数据集上调用时,返回(K,U)对的数据集,其中每个键的值使用给定的Combine函数和中性的“零”值进行汇总。允许与输入值类型不同的聚合值类型,同时避免不必要的分配。像in中一样groupByKey,reduce任务的数量可以通过可选的第二个参数进行配置。
sortByKey在由K实现Ordered的(K,V)对的数据集上调用时,返回(K,V)对的数据集,按布尔值指定,按键以升序或降序排序ascending
join在(K,V)和(K,W)类型的数据集上调用时,返回(K,(V,W))对的数据集,其中每个键都有所有成对的元素。外连接通过支持leftOuterJoinrightOuterJoinfullOuterJoin
cogroup在(K,V)和(K,W)类型的数据集上调用时,返回(K,(Iterable ,Iterable ))元组的数据集。此操作也称为groupWith
cartesian在类型T和U的数据集上调用时,返回(T,U)对(所有元素对)的数据集。
pipe通过外壳命令(例如Perl或bash脚本)通过管道传输RDD的每个分区。将RDD元素写入进程的stdin,并将输出到其stdout的行作为字符串的RDD返回。
coalesce将RDD中的分区数减少到numPartitions。筛选大型数据集后,对于更有效地运行操作很有用。
repartition在RDD中随机重排数据以创建更多或更少的分区,并在整个分区之间保持平衡。这总是会通过网络重新整理所有数据。
repartitionAndSortWithinPartitions根据给定的分区程序对RDD重新分区,并在每个结果分区中,按其键对记录进行排序。这比repartition在每个分区内调用然后排序更为有效,因为它可以将排序推入洗牌机制。

Action算子

Action含义
reduce使用函数func(使用两个参数并返回一个参数)聚合数据集的元素。该函数应该是可交换的和关联的,以便可以并行正确地计算它。
collect在驱动程序中将数据集的所有元素作为数组返回。这通常在返回足够小的数据子集的过滤器或其他操作之后很有用。
count返回数据集中的元素数。
first返回数据集的第一个元素 类似于take(1)
take返回具有数据集的前n个元素的数组。
takeSample返回带有数据集num个元素的随机样本的数组,带有或不带有替换,可以选择预先指定一个随机数生成器种子。
takeOrdered使用自然顺序或自定义比较器返回RDD 的前n个元素。
saveAsTextFile将数据集的元素以文本文件(或文本文件集)的形式写入本地文件系统,HDFS或任何其他Hadoop支持的文件系统中的给定目录中。Spark将在每个元素上调用toString,以将其转换为文件中的一行文本。
saveAsSequenceFile在本地文件系统,HDFS或任何其他Hadoop支持的文件系统的给定路径中,将数据集的元素作为Hadoop SequenceFile写入。这在实现Hadoop的Writable接口的键/值对的RDD上可用。在Scala中,它也可用于隐式转换为Writable的类型(Spark包括对基本类型(如Int,Double,String等)的转换)。
saveAsObjectFile使用Java序列化以简单的格式编写数据集的元素,然后可以使用进行加载 SparkContext.objectFile()
countByKey仅在类型(K,V)的RDD上可用。返回(K,Int)对的哈希图以及每个键的计数。
foreach在数据集的每个元素上运行函数func。通常这样做是出于副作用,例如更新累加器或与外部存储系统交互。注意:在之外修改除累加器以外的变量foreach()可能会导致不确定的行为。有关更多详细信息,请参见了解闭包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值