RDD 算子_分类 | 学习笔记

简介: 快速学习 RDD算子_分类

开发者学堂课程【大数据Spark2020最新课程(知识精讲与实战演练)第二阶段RDD算子_分类学习笔记,与课程紧密联系,让用户快速学习知识。

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


RDD算子_分类


内容介绍:

一、序言

二、功能上分类的两大算子

三、根据处理的数据不同分类

四、回归脑图

 

一、序言

Rdd 的使用,就是对于算子的了解,更多的了解 rdd 的使用的过程,就是在了解 rdd 的算子,在了解 rdd 更多的结构之前,先去了解 rdd 算子的划分。

 

二、功能上分类的两大算子

1.transformation

Rdd 从功能上来说有俩类算子,第一类叫做 transformation,即转换。第二类叫 action,即动作。当一个 rdd 使用转换操作,就会生成一个新的 rdd。例如 rdd1,接下来调用 map 算子,进行转换,生成一个新的 rdd2,所以 map 成为转换操作。转换操作大部分都是把 rdd1的每条数据,通过算子中的函数,将 rdd1的数据进行转换,放入到 rdd2中。

其实是表示一种逻辑上的关系,通过 rdd1转换成 rdd2,那么对于 rdd2来说会记录俩个信息,第一个信息是五大属性,会继承 rdd1,当然并不是所有的算子都是继承,但是都是和 rdd1有关系的。Rdd2还会保存依赖关系,有一个计算函数,即 map,这就是 rdd2。转换算子的本质就是生成各种 rdd,让 rdd 之间具有联系,这时就生成 rdd 的链条,本身并不执行。

2.  Action

例如有一个 val rdd1 = .... Val rdd2=rdd1.map(),里面传入方式,里面传入 collect,收集数据。

这时就需要执行整个程序,就需要执行rdd1rdd2的运算,最终去调用数据,来运行整个 spark 程序。所以 rdd 算子从整个功能上分类,transformation 不进行任何操作,只是生成 rdd 链条,而是 action 调用时,整个程序才会被执行。

RDD 中的算子从功能上分为两大类

1.Transformation(转换)它会在一个已经存在的 RDD 上创建一个新的 RDD,将旧的 RDD 的数据转换为另外一种形式后放入新的 RDD

2.Action()执行各个分区的计算任务,将的到的结果返回到 Driver

RDD 中可以存放各种类型的数据,那么对于不同类型的数据,RDD 又可以分为三类

针对基础类型(例如String)处理的普通算子

针对 Key-Value 数据处理的 byKey算子

针对数字类型数据处理的计算算子

 

三、根据处理的数据不同分类

rdd 当中肯定是有数据的,rdd 是一个数据集,那么 Rdd 当中可以存放不同类型的数据,根据处理的数据的不同,也可以分为不同的类。比如第一种是针对基础类型的数据,例如字符串,即 map 等算子。还有一类数据是针对 key-value 型的 by-key 算子。

如果 rdd 当中存放的是数据类型的操作,那么可以执行 maxmin,以及平均值。所以可以根据不同类型的数据也可以划分成不同类型的划分。


四、回归脑图

进入脑图当中,第一部分需要了解转换操作,第二部分了解 action 操作,第三部分了解针对 key 类型的数据做怎么样的优化,针对数字性的数据,提供什么操作。从不同的视角来看,对 rdd 算子进行划分。

相关文章
|
算法 安全
【操作系统】死锁处理-银行家算法
【操作系统】死锁处理-银行家算法
572 0
|
存储 SQL 安全
MySQL 安全加固配置(等保二级)
数据库安全是等保测评和网络安全中的重要的一项内容,本文介绍一些常见的加固配置。
5043 0
|
12月前
|
SQL 数据采集 数据挖掘
Pandas数据合并:concat与merge
Pandas是Python中强大的数据分析库,提供灵活高效的数据结构和工具。本文详细介绍了Pandas中的两种主要合并方法——`concat`和`merge`。`concat`用于沿特定轴连接多个Pandas对象,适用于简单拼接场景;`merge`则类似于SQL的JOIN操作,根据键合并DataFrame,支持多种复杂关联。文章还探讨了常见问题及解决方案,如索引对齐、列名冲突和数据类型不一致等,帮助读者全面掌握这两种方法,提高数据分析效率。
560 8
|
数据采集 JSON API
淘宝商品数据采集API技术分享
在电商领域,数据采集和分析对提升业务效率、优化用户体验至关重要。淘宝作为国内最大电商平台之一,提供了丰富的商品数据。通过淘宝商品采集API,开发者可高效获取这些数据,支持决策。本文详细介绍了如何注册、申请权限、构建请求、处理响应及注意事项,助力商家和开发者利用API进行商品数据采集。
|
Shell 网络安全 开发工具
【已解决】SSL certificate problem: self signed certificate
SSL certificate problem: self signed certificate
2509 2
|
移动开发 前端开发 JavaScript
探究移动端混合开发技术:React Native、Weex、Flutter的比较与选择
移动端混合开发技术在移动应用开发领域日益流行,为开发者提供了更高效的跨平台开发方案。本文将比较三种主流混合开发技术:React Native、Weex和Flutter,从性能、生态系统和开发体验等方面进行评估,以帮助开发者在选择适合自己项目的技术时做出明智的决策。
786 2
|
消息中间件 存储 缓存
RabbitMQ 集群和镜像队列
【1月更文挑战第11天】 一、clustering(集群) 1、使用集群的原因 2、搭建步骤 2.1、拉取镜像 2.2、创建三个RabbitMQ容器节点 2.3、集群搭建 二、镜像队列 1、使用镜像的原因 2、搭建步骤
804 87
|
监控 开发者 Python
Python在AOIP(Audio Over IP)方面的应用探讨
Python在AOIP(Audio Over IP)方面的应用探讨
320 0
|
Java 关系型数据库 MySQL
连接池技术:简单而强大的加速数据库访问方法
连接池技术是一种简单而强大的方法,可用于加速数据库访问。在传统的数据库访问过程中,每次与数据库建立连接和关闭连接都需要耗费大量的时间和资源。而连接池技术通过事先建立一组可重复使用的数据库连接,有效地减少了连接和关闭连接的开销。本文将深入探讨连接池技术的工作原理和优势,以及如何正确配置和使用连接池来提高应用程序的性能。无论你是开发人员还是系统管理员,通过了解连接池技术,你将能够更好地利用数据库资源,使系统更加稳定和高效。
1076 0
|
缓存 Java 数据库
Spring Boot中使用监听器
系统的介绍了监听器原理,以及在 Spring Boot 中如何使用监听器,列举了监听器的三个常用的案例,有很好的实战意义。最后讲解了项目中如何自定义事件和监听器,并结合微服务中常见的场景,给出具体的代码模型,均能运用到实际项目中去,希望读者认真消化。