RDD 的缓存_缓存的意义_过程代码 | 学习笔记

简介: 快速学习 RDD 的缓存_缓存的意义_过程代码

开发者学堂课程【大数据Spark2020最新课程(知识精讲与实战演练)第二阶段RDD 的缓存_缓存的意义_过程代码学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/689/detail/11997


RDD 的缓存_缓存的意义_过程代码


步骤

第一步,创建 SC

第二步,直接复制这个步骤去一个一个实现读取文件。

第三步,取出 IP ,并且赋予初始词频。

第四步,数据清洗。

第五步,统计 IP 出现的次数,其实就是一个聚合操作。

第六步,统计出现次数最少的 IP

第七步,得出结论。但是这一点会有一点特殊,是要得出两个结论,一个是统计最少的这个出现次数,还有一个是出现最多的次数。

首先,创建 SC ,就是 vial confnew SparkConf(),new SparkConf 以后要设置两个参数,第一个叫做 set App NameApp Name 可以指定叫做 cache 然后 Prepare

接下来要设置一个 Master ,这个 Master 需要去指定在本地运行使用六条线程。

接下来再取 val sc 创建出 spark context。这个 Context 当中要接收一个 conf 参数。

读取文件可以直接使用 sc.textFile 直接把这个位置放进来,这个路径放进来。

接下来赋予初始词频,去定义一个 countRdd

接下来就是 Source.map map 要按空格来进行分割。

 image.png

取出第一项就是 IP ,取出 IP 以后,要返回一个元组。去看一下 map ,到 item 中先 Split ,按照一个空格取出第一项 Split ,接下来拿到这一项以后返回一个元组。返回一个后边是一的元祖,这样的话就少写了一个 map 算子。整体上的这个效率会更高一些。

接下来进行过滤来进行数据清洗,然后使用 countRDD 来进行一个 filterFilter 拿到 Item Filter 的作用就是想去看K是不是不为空。

接下来判断一下 item._,这个东西就是下划线一元素当中的第一项,然后通过 StringUtils 导入 org.apache.commons.lang3这个包然后 isEmpty ,最终要的是一个 is not empty 。数据清洗就完成了。

数据清洗完成以后要统计 IP 出现的次数,接下来把他复制一下,拿到 cleanRDD ,统计过清洗过的 RDD 来进行一次reduceByKey 操作。

统计以后函数当中还有两个参数,第一个 curr ,第二个 agg 局部聚合结果,然后是 curr+agg ,他的意义是按照 k 来进行一次 reduce ,把其中的所有1加起来这样的话就得出了 IP 以及 IP 出现的次数。

相关文章
|
6月前
|
存储 缓存 分布式计算
187 RDD的缓存
187 RDD的缓存
19 0
|
7小时前
|
缓存 NoSQL 关系型数据库
数据库缓存一致性学习笔记(一)
数据库缓存一致性学习笔记(一)
|
7小时前
|
存储 缓存 分布式计算
Spark RDD持久化与缓存:提高性能的关键
Spark RDD持久化与缓存:提高性能的关键
|
9月前
|
缓存 前端开发
前端学习笔记202306学习笔记第四十七天-vue-强制缓存3
前端学习笔记202306学习笔记第四十七天-vue-强制缓存3
51 0
|
7小时前
|
存储 缓存 前端开发
《Webpack5 核心原理与应用实践》学习笔记-> webpack5持久化缓存
《Webpack5 核心原理与应用实践》学习笔记-> webpack5持久化缓存
87 1
|
7月前
|
缓存 NoSQL 算法
Redis学习笔记-缓存容量和淘汰机制核心思想
Redis学习笔记-缓存容量和淘汰机制核心思想
112 0
|
7月前
|
消息中间件 缓存 NoSQL
Redis学习笔记-如何解决缓存和数据库的数据不一致
Redis学习笔记-如何解决缓存和数据库的数据不一致
85 0
|
7月前
|
缓存 NoSQL 数据库
Redis学习笔记-如何应对缓存雪崩、击穿、穿透
Redis学习笔记-如何应对缓存雪崩、击穿、穿透
38 0
|
9月前
|
缓存 前端开发
前端学习笔记202306学习笔记第四十七天-vue-强制缓存2
前端学习笔记202306学习笔记第四十七天-vue-强制缓存2
55 0
|
9月前
|
缓存 前端开发
前端学习笔记202306学习笔记第四十七天-协商缓存1
前端学习笔记202306学习笔记第四十七天-协商缓存1
29 0