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 出现的次数。

相关文章
|
存储 缓存 分布式计算
187 RDD的缓存
187 RDD的缓存
42 0
|
1月前
|
存储 缓存 分布式计算
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
41 4
|
3月前
|
缓存 NoSQL 数据库
go-zero微服务实战系列(五、缓存代码怎么写)
go-zero微服务实战系列(五、缓存代码怎么写)
|
3月前
|
存储 缓存 算法
缓存优化利器:5分钟实现 LRU Cache,从原理到代码!
嗨,大家好!我是你们的技术小伙伴——小米。今天带大家深入了解并手写一个实用的LRU Cache(最近最少使用缓存)。LRU Cache是一种高效的数据淘汰策略,在内存有限的情况下特别有用。本文将从原理讲起,带你一步步用Java实现一个简单的LRU Cache,并探讨其在真实场景中的应用与优化方案,如线程安全、缓存持久化等。无论你是初学者还是有一定经验的开发者,都能从中受益。让我们一起动手,探索LRU Cache的魅力吧!别忘了点赞、转发和收藏哦~
68 2
|
3月前
|
Java 开发者 JavaScript
Struts 2 开发者的秘籍:隐藏的表单标签库功能,能否成为你下个项目的大杀器?
【8月更文挑战第31天】Struts 2表单标签库是提升Web页面交互体验的神器。它提供丰富的标签,如`<s:textfield>`和`<s:select>`,简化表单元素创建与管理,支持数据验证和动态选项展示。结合示例代码,如创建文本输入框并与Action类属性绑定,显著提升开发效率和用户体验。通过自定义按钮样式等功能,Struts 2表单标签库让开发者更专注于业务逻辑实现。
46 0
|
3月前
|
缓存 NoSQL 数据库
【超实用秘籍】FastAPI高手教你如何通过最佳实践构建高效Web应用:从代码组织到异步编程与缓存优化的全方位指南!
【8月更文挑战第31天】FastAPI凭借出色性能和易用性成为现代Web应用的首选框架。本文通过示例代码介绍构建高效FastAPI应用的最佳实践,包括开发环境搭建、代码模块化组织、异步编程及性能优化等。通过模块化设计和异步数据库操作,结合缓存技术,大幅提升应用性能与可维护性,助您轻松应对高并发场景。
180 0
|
3月前
|
缓存 开发框架 NoSQL
【Azure Redis 缓存】VM 里的 Redis 能直接迁移到 Azure Cache for Redis ? 需要改动代码吗?
【Azure Redis 缓存】VM 里的 Redis 能直接迁移到 Azure Cache for Redis ? 需要改动代码吗?
|
3月前
|
缓存 监控 NoSQL
【Azure Redis 缓存】使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)
【Azure Redis 缓存】使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)
|
4月前
|
存储 缓存 JavaScript
|
4月前
|
缓存 开发者 Java
java枚举消除冗余代码问题之需要延迟注册枚举到缓存问题如何解决
java枚举消除冗余代码问题之需要延迟注册枚举到缓存问题如何解决