首页 > 其他分享 >Spark基础必会知识总结

Spark基础必会知识总结

时间:2024-03-27 15:00:40浏览次数:21  
标签:总结 依赖 shuffle 分区 算子 RDD 必会 Spark

1、RDD是什么,RDD的五大属性

RDD是弹性分布式数据集

五大属性:

  1. 分区(指定数据是哪个分区的)
  2. 分区内的计算逻辑
  3. 分区器(如果有键值对可以控制分区的数据流向)
  4. 血缘关系
  5. 移动数据不如移动计算

2、RDD的弹性体现在哪里

存储弹性:内存磁盘一起用

计算弹性:重试机制

分片弹性:分区可以改变

容错弹性:可以基于血缘关系,也就是上一个RDD重新进行计算,恢复当前RDD的数据

3、Spark的算子

1、转换算子

1)单value (rdd2 = rdd1.算子)
  • **map:**一次处理一条数据
  • mappartitions:一次处理一个分区的数据(效率更高)
  • flatmap:一进多出 groupby:分组
  • **coalesce:**选择是否执行shuffle,一般用于缩小分区
  • repartition:在coalesce基础上实现,选择是否执行shuffle,一般用于扩大分区
2) 双value( rdd3 = rdd1.算子(rdd2) )
  • 交并差(intersection、union、subtract)、zip拉链
3)key-value
  • reduceByKey:有预聚合、重分区,聚合计算

  • groupByKey:没有预聚合,重分区但是不计算

2、行动算子

  • Collect(把数据拉回driver端做展示)、foreach(一条一条的触发计算)

4、Spark中的血缘,以及宽窄依赖

血缘说的就是宽依赖和窄依赖。有shuffle的是宽依赖

宽依赖:父RDD 的一个分区的数据会被子 RDD 的多个分区依赖,涉及到 Shuffle

窄依赖:父RDD 的一个分区的数据只会被子 RDD 的一个分区依赖

窄依赖的多个分区可以并行计算;宽依赖必须等到上一阶段计算完成才能计算下一阶段

5、Spark的任务划分

1、一个sparkcontext,也就是main中的一个上下文,生成一个Application

2、一个行动算子生成一个job

3、stage等于宽依赖个数+1

4、Task,数量=最后一个RDD的分区数(即这个stage中经过一些列的rdd后最后生成的文件个数,看最后一个RDD输出多少个分区,一个分区一个文件,也就是一个task

在这里插入图片描述

6、Spark为什么比MR快?

1、磁盘使用较少,排序少

MR过程中频繁的将数据写入到磁盘中,reduce阶段再从磁盘拉取数据,消耗大量时间。Spark不需要将计算的中间结果写入磁盘

2、使用spark DAG

减少了不必要的shuffle,对于mr来说下一个job依赖于上一个,但是每一个job又会落到磁盘,对于spark来说,每一个job结果都可以保存到内存中,供后续的job使用

7、Spark shuffle和Hadoop shuffle的区别

1、内存缓冲区

​ Mr是圆形缓冲区,spark不是

​ Mr的缓冲区是固定大小的,但是spark是动态扩容

2、排序

​ Hadoop的shuffle的必须排序的,map和reduce都要求分区内有序,但是spark不要求这一点

3、执行顺序

​ Hadoop不用等所有的maptask都执行完了才可以开启reducetask

​ Spark必须等父stage执行完才可以去抓取数据

8、除了RDD,你还了解Spark的其他数据结构吗

累加器和广播变量

  • 累加器

​ 在driver端定义的变量在executor端的每个task都会得到这个变量的一份新的额副本,每个task更新这些副本的值后,传回driver端进行合并

  • 广播变量

广播变量就是分布式共享只读变量,简单说一下它的原理:用来高效分发较大的对象。向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用

标签:总结,依赖,shuffle,分区,算子,RDD,必会,Spark
From: https://blog.csdn.net/Mikkkee/article/details/137077809

相关文章

  • MySQL事务总结
    1、事务数据库操作的最小工作单元。可以是由一条或者多条sql语句组成的不可分割的单元,要么都执行,要么都不执行。并且符合ACID四个特性。1、原子性:​事务中包含的操作要么都做,要么都不做【比如更新表中100条数据,更新了20条出问题了,那这20个数据要回滚到没有更新的状态......
  • 【经验总结】智慧物业数字化与社区运营那点事儿
    一、前言智慧物业与社区运营这个话题不新鲜,但自打2013年起,就不断有人兴致勃勃前赴后继地进入这个赛道,多半铩羽而归,智慧物业社区运营这个事到底靠不靠谱,是不是个伪命题?今天咱们就结合我这10年智慧社区从业经历,掰次掰析这点事儿。聊聊社区运营这块蛋糕下的陷阱,探讨下到底应该干......
  • C# 调用迅雷aplayer播放器的遇到的问题总结
    事件的起因是,目前发布的软件版本中,视频播放使用的是腾讯云点播提供的html版本的播放器(我们的视频存放在腾讯云点播上),客户端采用的是.netframework3.5开发的,采用WebBrowser内核加载和其它的一个浏览器内核加载后端的页面,通过传参进行视频播放,这种方式在部分用户电脑是会出现腾讯......
  • SpringBoot 常用注解总结
    核心注解1.@SpringBootApplication主要用于开启自动配置,它也是一个组合注解,主要组合了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan2.@EnableAutoConfiguration该注解组合了@Import注解,@Import注解导入了EnableAutoCofigurationImportSelector......
  • Spark SQL— Catalyst 优化器
    SparkSQL—Catalyst优化器1.目的本文的目标是描述SparkSQL优化框架以及它如何允许开发人员用很少的代码行表达复杂的查询转换。我们还将描述SparkSQL如何通过大幅提高其查询优化能力来提高查询的执行时间。在本教程中,我们还将介绍什么是优化、为什么使用Catalyst......
  • ANR问题分析总结
    前言ANR(ApplicationNotResponding)应用程序无响应。如果你应用程序在UI线程被阻塞太长时间,就会出现ANR,通常出现ANR,系统会弹出一个提示提示框,让用户知道,该程序正在被阻塞,是否继续等待还是关闭。ANR类型出现ANR的一般有以下几种类型:类型说明logcat日志关键字KeyDis......
  • 3.27每日总结
    某公司欲建设一个房屋租赁服务系统,统一管理房主和租赁者的信息,提供快捷的租赁服务。本系统的主要功能描述如下:1.登记房主信息。记录房主的姓名、住址、身份证号和联系电话等信息,并写入房主信息文件。2.登记房屋信息。记录房屋的地址、房屋类型(如平房、带阳台的楼房、独立式住......
  • Spark 编程
     1、数据准备people.json{"id":1,"name":"张三","age":38}{"id":2,"name":"李四","age":30}{"id":3,"name":"王五","age":28......
  • 蓝桥杯练习题总结(三)线性dp题(摆花、数字三角形加强版)
    目录 一、摆花思路一: 确定状态:初始化:思路二:确定状态:初始化:循环遍历: 状态转移方程: 二、数字三角形加强版一、摆花题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了......
  • 今日总结
    在开始编写爬虫程序之前,我们需要先分析目标网站的结构和数据。在本文中,我们选择抓取京东商城的商品信息、价格、评论等数据。1.商品信息商城的商品信息包括商品名称、商品编号、商品分类、商品品牌、商品型号、商品规格、商品产地、商品重量、商品包装等信息。这些信息可以在商品......