Spark 原理_逻辑图_窄依赖_案例 | 学习笔记

简介: 快速学习 Spark 原理_逻辑图_窄依赖_案例

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段Spark 原理_逻辑图_窄依赖_案例】学习笔记,与课程紧密联系,让用户快速学习知识。

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


Spark 原理_逻辑图_窄依赖_案例


内容简介

一、RDD 之间有那些依赖关系

二、窄依赖案例

 

我们已经学习了 rdd 之间的关系,探讨的是分区之间的关系,那么了解了分区之间就是一对一、多对一的关系,接下来会对这些内容做更详细的说明。

 

一、RDD 之间有那些依赖关系

1.  前置说明  //rdd 之间的关系有那些种

(1)一对一关系

(2)多对一关系

为什么一对一、多对一是前置说明,因为关系是一个相对的概念,例如夫妻之间是没有血缘关系的,但是从人伦的关系上来看,夫妻之间又是最亲近的关系。所以看待关系的视角不同,得到的结论也不同。

2. 下结论之前,探讨 spark 中为什么要在 RDD 之间划分关系原因:想要看看 RDD 的分区是否能放在同一个流水线上执行,这就是要为 rdd 之间划分关系的根本原因。

//依赖关系有两种,如下:

1.窄依赖

2.宽依赖

通过学习了解 rdd 之间的关系是什么,什么是窄依赖,窄依赖的作用

 

二、窄依赖

案例

1.进入代码,编写内容如下:

@test

Def narrowdependency():unit ={

//需求:求得两个 RDD 之间的笛卡尔积

步骤

//1.生成 RDD

val conf = new sparkconf().setmaster(local[6]).setAPPName(cartesian)

Val sc = new SparkContext(conf)

Val rdd1 = sc.parallelize(seq(1,2,3,4,5,6,))

Val rdd2 = sc.parallelize(seq(a,b,c))

//2.计算

Val resultRDD = rdd1.cortesian(rdd2) //cortesian 算子是生成笛卡尔积的算子,通过一个算子就可以求得 rdd1 rdd2 两个笛卡尔积

//3.结果获取

ResultRDD.collect().foreach(println(_))

Sc.stop()

}

2.运行结果如图:

image.png

...

image.png

Rdd1rdd2会生成的笛卡尔积,笛卡尔积中包含什么数据?

1a 1b 1c

2a 2b 2c

3a 3b 3c

4a 4b 4c......

这两个数据中所有数字全部连结

六个数量的数据集和三个数量的数据集,生成的笛卡尔积

在这里笛卡尔积中的结果数量为18

//编写整个笛卡尔积的目的是为了了解什么是窄依赖.

相关文章
|
4月前
|
移动开发 分布式计算 Spark
Spark的几种去重的原理分析
Spark的几种去重的原理分析
65 0
|
4月前
|
机器学习/深度学习 SQL 分布式计算
Spark核心原理与应用场景解析:面试经验与必备知识点解析
本文深入探讨Spark核心原理(RDD、DAG、内存计算、容错机制)和生态系统(Spark SQL、MLlib、Streaming),并分析其在大规模数据处理、机器学习及实时流处理中的应用。通过代码示例展示DataFrame操作,帮助读者准备面试,同时强调结合个人经验、行业趋势和技术发展以展现全面的技术实力。
218 0
|
4月前
|
存储 分布式计算 数据处理
bigdata-35-Spark工作原理
bigdata-35-Spark工作原理
35 0
|
3月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
28 0
|
4月前
|
SQL 存储 分布式计算
spark执行sql的原理是什么
spark执行sql的原理是什么
80 1
|
4月前
|
SQL 分布式计算 Java
IDEA 打包 Spark 项目 POM 文件依赖
这是一个 Maven POM 示例,用于构建一个使用 Spark 与 Hive 的项目,目标是将数据从 Hive 导入 ClickHouse。POM 文件设置了 Scala 和 Spark 的依赖,包括 `spark-core_2.12`, `spark-sql_2.12`, 和 `spark-hive_2.12`。`maven-assembly-plugin` 插件用于打包,生成包含依赖的和不含依赖的两种 JAR 包。`scope` 说明了依赖的使用范围,如 `compile`(默认),`provided`,`runtime`,`test` 和 `system`。
|
4月前
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
181 0
|
2月前
|
机器学习/深度学习 分布式计算 算法
Spark快速大数据分析PDF下载读书分享推荐
《Spark快速大数据分析》适合初学者,聚焦Spark实用技巧,同时深入核心概念。作者团队来自Databricks,书中详述Spark 3.0新特性,结合机器学习展示大数据分析。Spark是大数据分析的首选工具,本书助你驾驭这一利器。[PDF下载链接][1]。 ![Spark Book Cover][2] [1]: https://zhangfeidezhu.com/?p=345 [2]: https://i-blog.csdnimg.cn/direct/6b851489ad1944548602766ea9d62136.png#pic_center
106 1
Spark快速大数据分析PDF下载读书分享推荐
|
1月前
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
118 3