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

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

相关文章
|
8月前
|
移动开发 分布式计算 Spark
Spark的几种去重的原理分析
Spark的几种去重的原理分析
158 0
|
3月前
|
分布式计算 Java 大数据
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
50 0
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
|
3月前
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
86 0
|
3月前
|
SQL 分布式计算 算法
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
107 0
|
7月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
49 0
|
2月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
168 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
3月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
80 0
|
3月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
54 0
|
3月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
110 0
|
2月前
|
SQL 机器学习/深度学习 分布式计算
Spark快速上手:揭秘大数据处理的高效秘密,让你轻松应对海量数据
【10月更文挑战第25天】本文全面介绍了大数据处理框架 Spark,涵盖其基本概念、安装配置、编程模型及实际应用。Spark 是一个高效的分布式计算平台,支持批处理、实时流处理、SQL 查询和机器学习等任务。通过详细的技术综述和示例代码,帮助读者快速掌握 Spark 的核心技能。
112 6