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 算子进行划分。

相关文章
|
算法 安全
【操作系统】死锁处理-银行家算法
【操作系统】死锁处理-银行家算法
473 0
|
10月前
|
SQL 数据采集 数据挖掘
Pandas数据合并:concat与merge
Pandas是Python中强大的数据分析库,提供灵活高效的数据结构和工具。本文详细介绍了Pandas中的两种主要合并方法——`concat`和`merge`。`concat`用于沿特定轴连接多个Pandas对象,适用于简单拼接场景;`merge`则类似于SQL的JOIN操作,根据键合并DataFrame,支持多种复杂关联。文章还探讨了常见问题及解决方案,如索引对齐、列名冲突和数据类型不一致等,帮助读者全面掌握这两种方法,提高数据分析效率。
426 8
|
安全 网络协议 网络安全
Cisco-扩展ACL访问控制列表
Cisco-扩展ACL访问控制列表
233 1
|
移动开发 前端开发 JavaScript
探究移动端混合开发技术:React Native、Weex、Flutter的比较与选择
移动端混合开发技术在移动应用开发领域日益流行,为开发者提供了更高效的跨平台开发方案。本文将比较三种主流混合开发技术:React Native、Weex和Flutter,从性能、生态系统和开发体验等方面进行评估,以帮助开发者在选择适合自己项目的技术时做出明智的决策。
701 2
|
SQL 关系型数据库 MySQL
【MySQL核心】MySQL无法启动?批量恢复MySQL 物理文件-拯救即将跑路的你
【MySQL核心】MySQL无法启动?批量恢复MySQL 物理文件-拯救即将跑路的你
|
监控 开发者 Python
Python在AOIP(Audio Over IP)方面的应用探讨
Python在AOIP(Audio Over IP)方面的应用探讨
272 0
|
存储 安全 Android开发
深入探索安卓与iOS的安全性对比
在这篇文章中,我们将深入探讨安卓和iOS两大移动操作系统的安全性。通过比较它们在架构、权限管理、加密技术以及更新机制方面的不同,我们可以更好地理解这两个系统在保护用户数据和隐私方面的表现。文章将揭示一些关键的安全特性,并分析这些特性如何影响用户的日常使用。无论是普通用户还是技术人员,都能从中获得有价值的见解。
477 0
|
Java 关系型数据库 MySQL
连接池技术:简单而强大的加速数据库访问方法
连接池技术是一种简单而强大的方法,可用于加速数据库访问。在传统的数据库访问过程中,每次与数据库建立连接和关闭连接都需要耗费大量的时间和资源。而连接池技术通过事先建立一组可重复使用的数据库连接,有效地减少了连接和关闭连接的开销。本文将深入探讨连接池技术的工作原理和优势,以及如何正确配置和使用连接池来提高应用程序的性能。无论你是开发人员还是系统管理员,通过了解连接池技术,你将能够更好地利用数据库资源,使系统更加稳定和高效。
977 0
|
安全 网络安全 数据安全/隐私保护
Pikachu Over Permission 通关解析
Pikachu Over Permission 通关解析
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的家政服务预约系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的家政服务预约系统的详细设计和实现(源码+lw+部署文档+讲解等)
229 0