算子

作者: 八爪鱼下水 | 来源:发表于2022-04-01 20:01 被阅读0次

    spark
    --------- rdd算子学习 ---------
    转换算子: 返回值还是一个rdd就是转换
    是懒加载的算子,没有动作算子不执行
    第一个算子 MAP 解释:一个参数传入和一个必须给的返回值,对每一个数字进行计算
    第二个算子 FLATMAP 解释:先map再解除嵌套功能,参数跟map是一样的
    第三个算子 reduceByKey 解释:两个参数一个返回值,类型一致,按照key分组,按照value聚合(怎么聚合都行)叠加聚合
    #传入的参数只针对聚合的处理的
    第四个算子 mapValues 解释:只操作value的map算子
    第五个算子 groupby 解释:跟sql关键字一样,将rdd进行分组,一个传入一个返回,不限制类型
    传递参数是跟那个值进行分组
    第六个算子 filter 解释:过滤算子 ,一个传入参数,返回布尔型,对保留错不留
    第七个算子 distinct 解释:按照几个分区去去重复,按照无参数去处理 ,顺序不保证可能需要排序算子
    第七个算子 union 解释:把两个rdd合并成一个rdd算子,传入另外一个rdd算子,不去重
    第八个算子 join 解释:只能用在k,v行的数据,只能用在两个二元元祖,只按照key关联
    第九个算子 intersection 解释:判断两个数据是否有交集,把交集取出返回新rdd
    第十个算子 glom 解释:查看分区的分布,可以看到数据在那个分区,返回一个list
    第十一个算子 groupBykey 解释:要求必须十k,v类型,自动按照key分组,直接调用没有传入参数
    第十二个算子 sortBy 解释:根据指定函数排序,传递一个返回一个。三个参,最后一个多少个分区进行排序
    第十三个算子 sortByKey 解释:只是针对k,v类型的数据,只是针对key的,最后一个参数对key进行修改

    Action算子收集算子:
    第十四个算子 countByKey 解释:统计key出现次数,适用kv型的rdd
    第十五个算子 collect 解释:收集所有数据到Driver中,收集所有结果集,结果集不会太大,如果太大不好弄了
    第十六个算子 reduce 解释:对rdd数据集按照传入逻辑进行聚合,(T,T)-》T
    第十七个算子 fold 解释:带有聚合初始值的reduce print(rdd.fold(10,lambda a, b: a + b)) 105,分区间聚合,分区内聚合

    第十八个算子 first() 解释:拿到第一个元素
    第十九个算子 take(5) 解释:拿到第五个元素
    第二十个算子 top(5) 解释:降序排序前几个
    第二十一个算子 count() 解释:计算rdd有多少数据

    第二十二个算子 takeSample() 解释:随机抽样算子,参数1:是否重复,参数2:采几个,参数3:随机数种子一般不用传递
    第二十三个算子 takeOrdered() 解释:排序取前n个
    **********************性能比较好的函数********************
    第二十四个算子 *foreach() 解释:没有返回值的map方法 fun(T)-> null,
    ***很重要的一点****
    在分区内执行,但是没有返回值,不会把数据发送到DIRVER
    效率特别高,不用对dirver回报结果
    例子:链接mysql数据库,可以每一个talk并行插入

    第二十五个算子 saveAsTextFile 解释:写出文件也是分区直接执行跳过DIRVER
    第二十六个算子 mapPartitions 解释:分区计算代码,一次io整体过去了,跟map过程比较优秀的算子
    接受一个参数一个返回值,传递迭代器对象,两个list


    相关文章

      网友评论

          本文标题:算子

          本文链接:https://www.haomeiwen.com/subject/tytzjrtx.html