面试篇spark(spark core,spark sql,spark 优化)

一:为什么学习spark?

相比较map-reduce框架,spark的框架执行效率更加高效。
mapreduce的执行框架示意图。
在这里插入图片描述
spark执行框架示意图
在这里插入图片描述
spark的执行中间结果是存储在内存当中的,而hdfs的执行中间结果是存储在hdfs中的。所以在运算的时候,spark的执行效率是reduce的3-5倍。

二:spark是什么?

spark是一个执行引擎。

三:spark包含哪些内容?

1. spark core。

spark RDD五大特性。

1. RDD是由一系列partition组成的。

每个rdd中,partition的个数和由hdfs中的map的个数决定的。和map的个数保持一致。

2. 每个RDD会提供最佳的计算位置。

3. 每个函数会作用在每个partition上。

算子
  1. 转换算子
    常见 Transformation 类算子
    filter :过滤符合条件的记录数, true 保留, false 过滤掉。
    map :将一个 RDD 中的每个数据项,通过 map 中的函数映射变为一个新的元素。特点:输入
    一条,输出一条数据。
    flatMap :先 map 后 flat 。与 map 类似,每个输入项可以映射为0到多个输出项。
    sample 随机抽样算子,根据传进去的小数按比例进行有放回或者无放回的抽样。
    reduceByKey 将相同的 Key 根据相应的逻辑进行处理。
    sortByKey / sortBy 作用在 K,V格式的RDD 上,对 key 进行升序或者降序排序。
  2. 行动算子
    count :返回数据集中的元素数。会在结果计算完成后回收到 Driver 端。
    take(n) :返回一个包含数据集前 n 个元素的集合。
    first :效果等同于 take(1) ,返回数据集中的第一个元素。
    foreach :循环遍历数据集中的每个元素,运行相应的逻辑。
    collect :将计算结果回收到 Driver 端
  3. 持久化算子
    cache:默认将 RDD 的数据持久化到内存中。 cache 是懒执行。
    checkpoint:checkpoint 将 RDD 持久化到磁盘,还可以切断 RDD 之间的依赖关系,也是懒执行。

4. RDD之间相互依赖。

RDD的宽窄依赖。
一对一的就是窄依赖。
一对多的就是宽依赖。
在计算进行切割的时候,会将所有的窄依赖放在一起,成为一个stage。放在一个TaskScheduler中进行计算。
在这里插入图片描述

5. 分区器是作用在 (K,V) 格式的 RDD 上。

shuffle
HashShuffle
在这里插入图片描述

SortShuffle
在这里插入图片描述
在这里插入图片描述
bypass机制

shuffle map task的数量小于spark.shuffle.sort.bypassMergeThreshold参数的值(默认200)或者不是聚合类的shuffle算子(比如groupByKey)

在这里插入图片描述
Shuffle文件寻址
在这里插入图片描述

2. spark的俩种提交模式。

用于测试
在这里插入图片描述
用于生产
在这里插入图片描述

在这里插入图片描述

2. spark sql。

  1. RDD和dataFromes和dataset。
    dataset包含dataFormes,dataFormes包含RDD。
  2. Spark on hive 和hive on spark
    Spark on hive 中,hive是存储,spark负责sql的优化和解析。
    hive on Spark中,Hive即作为存储又负责sql的解析优化,Spark负责执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求和(打表题)

题目 打个表发现当 n 时答案为 p &#xff0c;否则为 1 &#xff0c;然后套板子。 #include <iostream> #include <algorithm> #include <vector> #include <cstring> #include <cmath>using namespace std;#define int long long using i64 …

卷积神经网络入门

1.卷积神经网络基本结构结构 卷积神经网络采用类似于动物视觉皮层组织中的神经元的连接模式&#xff0c;是一类包含卷积神经网络且具有深度结构的前馈神经网络。其基本结构如图2-1所示&#xff0c;大致包括&#xff1a;卷积层&#xff0c;激活函数&#xff0c;池化层&#xff…

Module build failed: Error: ENOENT: no such file or directory

前言 这个错误通常发生在Node.js 和 vue,js项目中&#xff0c;当你试图访问一个不存在的文件或目录时。在大多数情况下&#xff0c;这是因为你的代码试图打开一个不存在的文件&#xff0c;或者你的构建系统&#xff08;例如Webpack&#xff09;需要一个配置文件&#xff0c;但找…

【泛型】JAVA基础篇(三)

泛型&#xff08;Generics&#xff09;是Java编程语言中的一个强大的特性&#xff0c;它提供了编译时类型安全检测机制&#xff0c;这意味着可以在编译期间检测到非法的类型。泛型的使用减少了程序中的强制类型转换和运行时错误的可能性。 一、泛型使用规范 类型参数命名约定…

【LeetCode】70. 爬楼梯

70. 爬楼梯 难度&#xff1a;简单 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼…

面试刷题自备中

面试刷题自备中 JavaSE基础线程redisMQkafkaspringspringmvcspringbootspringcloud设计模式数据库FastDFS垃圾回收机制项目部署dockerlinux JavaSE基础 面向对象都有哪些特性以及你对这些特性的理解访问权限修饰符 public、private、protected, 以及不写&#xff08;默认&…

asp.net core webpi 结合jwt实现登录鉴权

1.安装jwt nuget包 <PackageReference Include"Microsoft.AspNetCore.Authentication.JwtBearer" Version"6.0.25" /><PackageReference Include"System.IdentityModel.Tokens.Jwt" Version"7.0.3" />2.配置jwt信息 build…

<JavaDS> 二叉树遍历各种遍历方式的代码实现 -- 前序、中序、后序、层序遍历

目录 有以下二叉树&#xff1a; 一、递归 1.1 前序遍历-递归 1.2 中序遍历-递归 1.3 后序遍历-递归 二、递归--使用链表 2.1 前序遍历-递归-返回链表 2.2 中序遍历-递归-返回链表 2.3 后序遍历-递归-返回链表 三、迭代--使用栈 3.1 前序遍历-迭代-使用栈 3.2 中序遍…

服务器bash进程占用cpu过多疑似中挖矿病毒记录

发现过程 因为我有使用conky的习惯&#xff0c;也就是在桌面上会显示cpu和内存的占用情况&#xff0c;由于服务器不止我一个人使用&#xff0c;最近发现好几次我同学的账户下的bash进程占用特别多&#xff0c;问了他之后&#xff0c;他也说他几次都是没有使用过bash相关服务&a…

【LeetCode】每日一题 2023_11_28 设计前中后队列(数组/链表/双端队列)

文章目录 刷题前唠嗑题目&#xff1a;设计前中后队列题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 这道题的难度&#xff0c;才是我想象中的中等题的难度好吧&#xff0c;昨天那玩意对我来说还是太难了…

9.Spring 整合 Redis

引入依赖&#xff1a;spring-boot-starter-data-redis配置 Redis&#xff1a;配置数据库参数、编写配置类&#xff0c;构造 RedisTemplate访问 Redis&#xff1a; redisTemplate.opsForValue() redisTemplate.opsForHash() redisTemplate.opsForList() redisTemplate.opsForSe…

Vue3-toRaw 和 markRaw 函数

Vue3-toRaw 和 markRaw 函数 toRaw(转换为原始)&#xff1a;将响应式对象转换为普通对象&#xff0c;只适用于 reactive 生成的响应式对象。markRaw(标记为原始)&#xff1a;标记某个对象&#xff0c;让这个对象永远都不具备响应式。一些集成的第三方库&#xff0c;会有大量的…

华为认证大数据工程师(HCIA-Big Data)--练习题

华为认证大数据工程师&#xff08;HCIA-Big Data&#xff09;–练习题 单线 1、Hive定义一个自定义函数类时&#xff0c;需要继承以下哪个类&#xff1f; B A.FunctionRegistry B.UDF C.MapReduce2、 多选 1、以下场景中&#xff0c;哪些选项属于华为数据治理中心DataArts …

UE4 UE5 使用SVN控制

关键概念&#xff1a;虚幻引擎中使用SVN&#xff0c;帮助团队成员共享资源。 1. UE4/UE5项目文件 如果不需要编译的中间缓存&#xff0c;则删除&#xff1a; DerivedDataCache、Intermediate、Saved 三个文件夹 2.更新、上传

Hive进阶函数:SPACE() 一行炸裂指定行

数据一行如何转多行 假如有一张表&#xff0c;字段有两个&#xff0c;分别是name 和 number&#xff0c;代表含义为名字 和 名字出现的次数&#xff0c;现在需要把一行数据转为number行 举例&#xff1a; 输入&#xff1a; tom&#xff5c;3jery&#xff5c;4输出&#xff1a…

C++单调向量(栈):好子数组的最大分数

作者推荐 利用广度优先或模拟解决米诺骨牌 题目 给你一个整数数组 nums &#xff08;下标从 0 开始&#xff09;和一个整数 k 。 一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i1], …, nums[j]) * (j - i 1) 。一个 好 子数组的两个端点下标需要满足 i < k <…

【LangChain实战】LangChain快速入门

1、什么是大语言模型 大语言模型是一种人工智能模型&#xff0c;通常使用深度学习技术&#xff0c;比如神经网络&#xff0c;来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多&#xff0c;可以达到数十亿甚至更多&#xff0c;这使得它们能够理解和生成高度复杂…

【Vue3】

组合式API setup选项 执行时机&#xff1a;比beforeCreate早 不能使用this 数据和函数需要return才能应用 标准写法 <script>export default {setup() {const message "vue32"const logMessage () > {console.log(message)}return {message,logMess…

MATLAB算法实战应用案例精讲-【图像处理】机器人视觉

目录 前言 机器人视觉发展历程 知识储备 光的偏振 01偏振光 02偏振应用

PostgreSQL数据库中的后台进程

在 PostgreSQL 中&#xff0c;有多个后台进程&#xff08;也称为工作者进程&#xff09;&#xff0c;负责处理不同的任务和功能。这些进程包括但不限于以下几种&#xff1a; 1. PostgreSQL数据库中的后台进程 1.1. Postmaster 进程 这是 PostgreSQL 服务器的主进程&#xff…