Rdd 算子_转换_回顾 | 学习笔记

简介: 快速学习 Rdd 算子_转换_回顾

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段Rdd 算子_转换_回顾】学习笔记,与课程紧密联系,让用户快速学习知识。

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


Rdd 算子_转换_回顾


内容介绍:

一、序言

二、map

三、flatmap

四、reduce-by-key

五、回顾

 

一、序言

本章节将去了解转换操作中涉及到的一些算子,这一部分算子会偏多,大部分都是这些算子。


二、Map

Map 是一个转换操作,作用是对rdd的数据一对一转换成不同数据,下面是一个小案例。

scala>:paste

/ 1Entering paste mode (ctrl-D to finish)

sc.parallelize(Seq(1,2,3))

.map( num =>num 10)

.collect()

/ /Exiting paste mode, now interpreting.res0:Array[Int]= Array(10, 20, 30)

首先创建了一个列表,接下里使用 map 操作,将数据都乘10,最终用 collect 后,返回的 array 10 20 30。所以map 的大致逻辑是通过定义来控制操作的基调。

这个转换就是通过 map 定义的,那么转换规则是是 map 里面所接收的这些函数来定义的。

image.png

所以一个算子有两大部分组成,一部分是这个算子本身所表达的那个最深层的翻译,然后是通过后面所给出的这个函数来进行实现的,就是一对一的去把一个数据的形式转成另外一种形式。

 

三、Flatmap

Flatmap map 区别是一对多的,首先这两个单词的意思不一样,其实里面接收到的东西可以都是函数,但是他们从最深层的意义上是不一样的,那就是一个是一对一的转换,一个是一对多的转换,一个算子有两部分组成,第一部分呢是算子本身所表达出来的那个功能,其次通过里面接收的这个函数来进行实现这个功能,规则有函数来定义。

下面这个案例当中就是使用 parallelize 生成一个 rdd 里面存放 Hello lily""Hello lucy","Hello tim’,接下来使用flat map 把其中的每一个字符串按照空格来进行拆分,并且展开形成 Hello, lily, Hello,lucy,Hallo,tim 这样的一个散装的这样的一个每个单词都是一个条目的这样的一种形式,所以一个 hello lily,这部分对应的结果是一个 hello 和一个Lily,所以是一对多。

scala> :paste

// Entering paste mode (ctrl-D to finish)

sc.parallelize(Seq "Hello lily""Hello lucy","Hello tim" flatMapk line=>line.split(

.collect()

/ /Exiting paste mode, now interpreting.

res1:Array[String]= Array(Hello, lily, Hello,lucy,Hallo,tim)

 

四、reduce by key

Reduce bey 的含义,第一点通过 reduce key 的含义,就定义了接下来要进行的操作首先是 reduce,要按照 key3来定义。将 reduce 进行相加、相乘、相除,还是相减,这个规则通过函数来定义。

所以算子分为两部分,第一个是算子本身那个方法定义的功能,第二个是这个函数定义的规则,所以 reduce by key就是按照 key 相同的两个算子进行规约。

scala>:paste

// Entering paste mode (ctrl-D to finish)

sc.parallelize(Seq(("a",1),("a",1), ("b",1)))

reduceByKey (curr,agg) => curr + agg)

.colrecto

// Exiting paste mode, now interpreting.

res13: Array[(String, Int)] = Array((b,1), (a,2))

 

五、回顾

算子的方法例如 map flatmap reduce by-key,方法名规定了功能,算子传入的函数规定了规则。

相关文章
|
Unix Go
Golang 语言中怎么拦截系统信号和优雅退出 http server?
Golang 语言中怎么拦截系统信号和优雅退出 http server?
182 0
|
5月前
|
机器学习/深度学习 文字识别 自然语言处理
OCR技术:解锁文字识别的无限可能
OCR(光学字符识别)技术是数字化浪潮中的关键工具,可将纸质文档、手写笔记或复杂背景下的文字图像转化为可编辑文本。本文从图像采集、预处理、字符识别到文本校正,全面解析OCR技术的原理,并探讨其在智能办公、智慧交通、便捷生活等领域的广泛应用。未来,OCR将与自然语言处理、计算机视觉等技术深度融合,推动智能化和综合化发展。通过开放生态系统和政策支持,开发者可探索更多创新场景,如古籍数字化、盲人阅读等,为社会带来更多价值。
1096 57
|
4月前
|
消息中间件 监控 关系型数据库
覆盖迁移工具选型、增量同步策略与数据一致性校验
本文深入解析数据迁移核心挑战,涵盖工具选型、增量同步优化与一致性校验三大关键环节,结合实战案例与代码方案,助开发者规避风险,实现高效可靠迁移。
202 0
|
存储 块存储
ceph分布式存储系统常见术语篇
关于Ceph分布式存储系统的常见术语解释和概述。
1123 1
ceph分布式存储系统常见术语篇
|
人工智能
简单利用AI工具生成动漫头像
【7月更文挑战第14天】简单利用AI工具生成动漫头像
|
移动开发 小程序 JavaScript
uni-app多端应用开发:常见跨端兼容问题及处理策略
uni-app多端应用开发:常见跨端兼容问题及处理策略
877 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的安全教育平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的安全教育平台的详细设计和实现(源码+lw+部署文档+讲解等)
144 0
|
安全 前端开发 Java
​springboot代码混淆及反混淆代码工具
​springboot代码混淆及反混淆代码工具
257 0
|
机器学习/深度学习 存储
进制及进制转换详解。原码、反码、移码,补码区别介绍。(通俗易懂)
Ⅰ.进制转换详解。Ⅱ.原码、反码、移码,补码区别介绍。(通俗易懂)
800 0
进制及进制转换详解。原码、反码、移码,补码区别介绍。(通俗易懂)