当前位置: 首页 > news >正文

Spark面试题

一、groupByKey和reduceByKey的区别

groupByKey仅仅只有分组功能,reduceByKey是先预聚合在shuffle在最终聚合,减少了网络io传输

二、关于数仓方面

数仓建设整体流程是什么?你参与哪些环节?

        提出需求 需求分析 模型设计【概念模型、逻辑模型】 实施【ETL、MAPPING、写SQL】测试 上线

        参与了实施【ETL、MAPPING、写SQL】测试也就是写sql

        在数据仓库(数仓)建设的语境中,Mapping(映射) 是指明确源系统数据与目标数据仓库模型中数据之间的对应关系

具体来说,它要定义清楚:

        源系统的哪些表、哪些字段,对应目标数仓模型里的哪个维度表、哪个事实表,以及哪个字段。

        数据在从源系统向数仓转移过程中,需要进行怎样的转换(比如数据类型转换、业务规则转换等),才能适配数仓模型的要求。

        简单讲,Mapping 就像一份 “数据搬运与改造的说明书”,指导 ETL(提取、转换、加载)过程中数据如何从源头准确、合规地进入数仓。

三、SparkContext 和 SparkSession 有什么区别?

SparkContext:整个应用的上下文,控制应用的生命周期。

SparkSession:是在Spark2.0中引入的,它使开发人员可以轻松的使用它,这样我们就不用担心不同的上下文,并简化了对不同上下文的访问。通过访问SparkSession,我们可以自动访问SparkContext

四、Spark是怎么做内存计算的?DAG的作用?Stage阶段划分的作用?

根据宽窄依赖关系划分阶段时,每遇到一个宽依赖就划分,这样就可以保证每一个阶段内都是窄依赖。

五、Spark为什么比MapReduce快

Spark有更多的算子,Spark可以基于内存迭代,MapReduce是通过硬盘来交互。

http://www.dtcms.com/a/349881.html

相关文章:

  • HTTP 协议与TCP 的其他机制
  • excel 破解工作表密码
  • Python之Flask快速入门
  • Redis类型之List
  • 自然语言处理——07 BERT、ELMO、GTP系列模型
  • lesson46-1:Linux 常用指令全解析:从基础操作到高效应用
  • Docker:常用命令、以及设置别名
  • 数据挖掘 6.1 其他降维方法(不是很重要)
  • 聊聊负载均衡架构
  • 关于窗口关闭释放内存,主窗口下的子窗口关闭释放不用等到主窗口关闭>setAttribute(Qt::WA_DeleteOnClose);而且无需手动释放
  • 【Python】QT(PySide2、PyQt5):列表视图、模型、自定义委托
  • 【芯片后端设计的灵魂:Placement的作用与重要性】
  • SQL 语句拼接在 C 语言中的实现与安全性分析
  • 跨语言统一语义真理及其对NLP深层分析影响
  • 2.3零基础玩转uni-app轮播图:从入门到精通 (咸虾米总结)
  • Python 实战:内网渗透中的信息收集自动化脚本(3)
  • 苹果公司即将启动一项为期三年的计划
  • Linux应急响应一般思路(三)
  • 蜗牛播放器 Android TV:解决大屏观影痛点的利器
  • C/C++ 指针与函数
  • Tesseract OCR之页面布局分析
  • 朴素贝叶斯:用 “概率思维” 解决分类问题的经典算法
  • ​Visual Studio + UE5 进行游戏开发的常见故障问题解决
  • 【区间DP】P1063 [NOIP 2006 提高组] 能量项链
  • 基于深度学习的人声分离系统设计与实现
  • Apache Commons Math_Java科学计算的利器
  • AP服务发现中两条重启检测路径
  • 南京魔数团:AR技术引领远程协作新纪元
  • C++ Core Guidelines 核心理念
  • ios webgl音频问题