Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > 大数据云计算 >

Spark Transformation和Action算子速查表 PDF 下载


分享到:
时间:2020-05-18 14:53来源:http://www.java1234.com 作者:小锋  侵权举报
Spark Transformation和Action算子速查表 PDF 下载
失效链接处理
Spark Transformation和Action算子速查表 PDF 下载

本站整理下载:
提取码:83yo 
 
 
相关截图:
 
主要内容:

Transformation算子 作用 map(func)
返回一个新的分布式数据集,其中每个元素都是由源RDD中 每一个元素经过func函数转换得到的 filter(func)
返回一个新的数据集,其中包含的元素来自源RDD中元素经 过func函数过滤后的结果(func函数返回true的结果) flatMap(func)
类似于map, 但是每个元素可以映射到0到n个输出元素(func 函数必须返回的是一个Seq而不是单个元素) mapPartitions(func)
类似于map, 但是它是基于RDD的每个Partition(或者数据 block)独立运行,所以如果RDD包含元素类型为T,则func 函数必须是Iterator => Iterator 的映射函数 mapPartitionsWithIndex(func)
类似于mapPartitions,只是func多了一个整型的分区索引 值,因此如果RDD包含元素类型为T,则func必须是Iterator => Iterator的映射函数 mapWith(func)(func)
mapWith是map的另外一个变种,map只需要一个输入函 数,而mapWith有两个输入函数, 第一个函数是把RDD的 partition index(index从0开始)作为输入,输出为新类型 A;第二个函数f是把二元组(T, A)作为输入(其中T为原RDD 中的元素,A为第一个函数的输出),输出类型为U flatMapWith(func)(func)
与mapWith很类似,都是接收两个函数,一个函数把 partitionIndex作为输入,输出是一个新类型A;另外一个函 数是以二元组(T,A)作为输入,输出为一个序列,这些序 列里面的元素组成了新的RD mapValues(func)
mapValues顾名思义就是输入函数应用于RDD中Kev-Value 的Value,原RDD中的Key保持不变,与新的Value一起组成 新的RDD中的元素。因此,该函数只适用于元素为KV对的 RDD。 flatMapValues(func)
flatMapValues类似于mapValues,不同的在于 flatMapValues应用于元素为KV对的RDD中Value。每个一 元素的Value被输入函数映射为一系列的值,然后这些值再 与原RDD中的Key组成一系列新的KV对。 sample(withReplacement, fraction, seed) 采样部分(比例取决于fraction)数据,同时可以指定是否使用 回置采样(withReplacement),以及随机数种子(seed) union(otherDataset) 返回源数据集和参数数据集(otherDataset)的并集 intersection(otherDataset) 返回源数据集和参数数据集(otherDataset)的交集 distinct([numTasks]) 返回对源数据集做元素去重后的新的数据集 groupByKey([numTasks]) 必须应用于键值对的元素类型,如源RDD包含(K,V)对,则该 算子返回一个新的数据集包含(K, Iterator)对
Transformation算子 作用 reduceByKey(func, [numTasks]) 如果源RDD包含元素类型为(K,V)对,则该算子也返回包含(K, V)对的RDD, 只不过每个Key对应的Value是经过func函数 聚合后的结果,而func函数本身是一个(V, V) => V的映射函 数。 另外,和groupByKey类似,可以通过可选参数 numTasks指定reduce任务的个数 aggregateByKey(zeroValue)(seqOp, combOp, [numTasks]) 如果源RDD包含(K, V)对,则返回的新RDD包含(K, V)对,其 中每个Key对应的Value都是由combOp函数和一个”0”值 zeroValue聚合得到。允许聚合后Value类型和输入Value类 型不同,避免了不必要的开销。和groupByKey类似,可以 通过可选参数numTasks指定reducer任务的个数 sortByKey([ascending], [numTasks]) 如果源RDD包含元素类型(K, V)对,其中K可以排序,则返回 新的RDD包含(K, V)对,并按照K进行排序(由ascending参数 决定是升序还是降序) sortBy(func,[ascending], [numTasks]) 类似于sortByKey,只不过sortByKey只能够按照key去排 序,sortBy会更加灵活,既可以按照key,也可以按照value 排序。 join(otherDataset, [numTasks]) 如果源RDD包含元素类型(K, V)且参数RDD(otherDataset)包 含元素类型(K, W), 则返回的新RDD中将包含内联后Key对应 的(K, (V, W)对。外关联(Outer joins)操作请参考 leftOuterJoin、rightOuterJoin以及fullOuterJoin算子)
cogroup(otherDataset, [numTasks]) 如果源RDD包含元素类型(K, V)且参数RDD(otherDataset)包 含元素类型(K, W),则返回的新的RDD中包含(K, (Iterable, Iterable))。该算子还有个别名:groupWith
cartesian(otherDataset) 如果源RDD包含元素类型T且参数RDD(otherDataset)包含 元素类型U,则返回的新RDD包含前二者的笛卡尔积,其元 素类型为(T, U)对 pipe(command, [envVars]) 以shell命令行管道处理RDD的每个分区,如:Perl或者bash 脚本。RDD中每个元素都将依次写入进程的标准输入 (stdin),然后按行输出到标准输出(stdout),每一行输出字 符串即成为一个新的RDD元素
coalesce(numPartitions) 将RDD的分区数减少到numPartitons。当以后大数据集被 过滤成小数据集后,减少分区,可以提升效率 repartition(numPartitions) 将RDD数据重新混洗(reshuffle)并随机分步到新的分区中, 使数据分布更均衡,新的分区个数取决于numPartitions。 该算子总是需要通过网络混洗所有数据。 repartitionAndSortWithPartitions(partitioner) 根据Partitioner(spark自带有HashPartioner和 RangePartitoner等)重新分区RDD,并且在每个结果分区中 按Key做排序。这是一个组合算子,功能上等价于先 reparation再在每个分区内排序,但这个算子内部做了优化 (将排序过程下推到混洗同时进行),因此性能更好

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐