| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Spark追妻系列(Pair RDD下集) -> 正文阅读 |
|
[大数据]Spark追妻系列(Pair RDD下集) |
小谈:????????今天啥也没干,不知不觉已经是大年初五了,再过五六七八天就要开始考科目四了,希望早早拿到驾照 combineByKey? 先解释一个每个参数的意义
????????combineByKey()会遍历分区中的所有元素,因此每个元素要么之前遇到过,要么没有遇到过,如果是一个新的元素(指的是这个key),那么就会使用createCombiner来创建那个键对应的累加器的初始值,只会每个键第一次出现的时候发生,并不是出现一个就发生一个 ????????如果是之前已经出现的key,那么就会使用mergeValue来将该键对应的累加器的当前值与这个新的值进行合并 ????????只讲参数意义不给代码实战就是耍流氓。 ????????下面通过一个案例来实战一个这个函数 ????????有一个源源梓同学,求她的成绩平均数。三门科目分数97,96,95.求她的平均成绩,三门科目,总分288分。平均分数为96分。 ????????来看代码
????????可能光看代码看不懂,下面来一一讲解一下。 1..首先创建RDD ? ? ? ?
2.调用combineByKey算子
3.计算平均数 ? ??
????????看一下上面案例的类似图解 ? ????????上面这个图解可以更明了的来看出来这个算子的作用。 ????????刚开始分组后,对分组的数据进行转换 ????????在分区内对相同组内的数据进行相加,总数相加的同时个数也相加 ????????分区间对相同key的数据进行相加,(这里的数据就是在分区内计算出来的数据) sortByKey????????在一个(k,v)的RDD上调用,K必须实现Ordered特质,返回一个按照key进行排序 ????????先看一下这个算子
????????在使用这个算子的时候一定会发生shuffle,因为底层继承了new ShuffledRDD。当然拉,可以根据第二个参数来选择是升序还是降序排列。 ????????通过代码来认识一下
????????默认是升序的,那么结果就是 ????????(a,97) (b,96) (c,95) MapValues????????有时候,我们只想访问Pair RDD的值部分,这时操作二元组很麻烦,这个时候使用Spark提供的mapValues(func)函数。功能类似于map{case (x,y) : (x,func(y))} 总结:????????今天摆烂了,感觉写的好少好少。明天一定好好学习,好好输出文章,积攒这么多的文笔,得要好好发挥发挥。 ????????明天将会输出 TopN案例和动作算子。如果可以还会讲RangePartitioner。 ? ? ? ? 还差四五百阅读量就可以破两万了,虽然这篇博客挺差劲的,希望明天醒来可以看到阅读量破两万。 ? ? ? ? 如果破两万,一定好好写博客。摆烂太难受了 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 13:55:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |