![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark源码精读分析系列
文章平均质量分 87
spark源码精读
小萝卜算子
这个作者很懒,什么都没留下…
展开
-
数仓面试——补充缺失日期和数据
补充缺失的日期行, 以及补充其他对应的数据,从思路分析到解决问题,三种不同方式让大家更熟悉窗口函数,不同的思路,不一样的风景呢。。。原创 2023-03-09 14:57:21 · 530 阅读 · 1 评论 -
窗口函数为什么更容易出现性能问题?——一个优化案例
普通的聚合函数语句根据函数不同, 可以partial+merge的方式运行, 也就是map端预聚合;而window语句则都要在reduce端一次性聚合, 也就是只有complete执行模式。普通的聚合函数的物理执行计划分为SortBased和HashBased的;而window则都是SortBased。window语句作用于多行, 并为每行返回一个聚合结果,这决定了window在执行过程中需要更大的buffer进行汇总。原创 2023-03-09 11:12:48 · 967 阅读 · 0 评论 -
SparkSql内存专题——Spark on YARN Executor整体内存理解
不管是聚合、还是join;不管它们占的空间有多大;不管它们是int类型的,还是一个大json串;不管实现整个聚合的计算用的是HashAgg 、是ObjectHashAgg 或者是SortAgg;不管实现整个JOIN的计算用的是SortMergeJoin 、是ShuffleHashJoin 、还是BroadcastHashJoin...原创 2023-03-09 09:58:44 · 935 阅读 · 0 评论 -
sparksql源码系列 | 生成resolved logical plan的解析规则整理
Analyzer定义了从【未解析的逻辑执行计划】生成【解析后的逻辑执行计划】的一系列规则原创 2023-02-20 15:50:55 · 149 阅读 · 0 评论 -
sparksql优化的奇技淫巧(一次惊掉下巴的优化)
一次惊掉下巴sparksql的优化原创 2023-02-21 14:23:00 · 367 阅读 · 0 评论 -
SparkSql不同写法的一些坑(性能优化)
sparksql不同写法的避坑指南原创 2023-02-21 15:30:52 · 192 阅读 · 0 评论 -
spark sql多维分析优化——提高读取文件的并行度
知识技术不能留盲点,尤其是正在用的关键技术。盲点、死穴,不花时间去研究,总会绊你一脚。主动学习,保持激情,不断提高~原创 2023-02-23 14:12:43 · 1069 阅读 · 0 评论 -
spark sql多维分析优化——细节是魔鬼
分享一个工作中遇到的多维分析优化的案例原创 2023-02-22 16:06:48 · 1341 阅读 · 0 评论 -
记录一次spark sql的优化过程
记录一次spark sql优化的过程原创 2023-02-22 15:45:29 · 259 阅读 · 0 评论 -
SparkSql数组操作的N种骚气用法
总结一下sparksql(基于branch3.3) 中 array操作相关的骚气用法,这恐怕是总结的最全的一篇了,哈哈~~原创 2023-02-22 14:28:17 · 2921 阅读 · 0 评论 -
面试 | 你真的了解count(*)和count(1)嘛?
虽然是我在给大家出作业题,这篇也算是我自己给自己交的一个作业吧原创 2023-02-21 10:36:59 · 155 阅读 · 0 评论 -
Spark DataSource API v2 版本对比 v1有哪些改进?
Spark DataSource API v2 版本对比 v1有哪些改进?整理记录一下,下周分享ResolveRelations规则中会用到,需要理解原创 2023-02-20 20:30:30 · 89 阅读 · 0 评论 -
sparksql源码系列 | ResolveReferences规则count(*)详解
大家想要《sparksql内核心剖析》电子书的话,一定记得后台发 :sparksql源码 这几个字,不要有空格、不要加- ,因为我设置的是精准匹配,看到有好多小伙伴发错了原创 2023-02-20 14:25:53 · 148 阅读 · 0 评论 -
sparksql源码系列 | 最全的logical plan优化规则整理(spark2.3)
最全的logical plan优化规则整理(spark2.3),有需要的点赞收藏~~原创 2023-02-20 10:13:18 · 158 阅读 · 0 评论 -
Sparksql源码系列 | 读源码必须掌握的scala基础语法
这篇文章总结一下我在学习spark sql源码时,曾经纠结过的一些scala语法~原创 2023-02-18 11:43:36 · 249 阅读 · 1 评论 -
sparksql源码系列 | 一文搞懂with one count distinct 执行原理
在面试时,或多或少会被问到有关count distinct的优化,现在离线任务用到的基本就是hivesql和sparksql,那sparksql中有关count distinct做了哪些优化呢?原创 2023-02-16 16:06:12 · 445 阅读 · 0 评论 -
sparksql源码系列 | 一文搞懂Distribution源码体系(spark3.2)
这篇文章主要介绍sparksql中Distribution的源码体系,Distribution是我们理解Physical Plan、executed Plan、shuffle、SparkSQL的AQE机制等的一个比较基础的知识点原创 2023-02-16 15:57:34 · 445 阅读 · 0 评论 -
sparksql源码系列 | 一文搞懂Partitioning源码体系(spark3.2)
决定要不要添加Exchange节点,主要是靠子节点的outputPartitioning(Partitioning)是否satisfies当前节点requiredChildDistributions(Distribution)来决定原创 2023-02-16 15:57:03 · 374 阅读 · 0 评论 -
sparksql源码系列 | 一文搞懂Show create table 执行原理
这篇文章主要介绍了show create table命令执行的源码流程,弄清楚了sparksql是怎么和hive元数据库交互,查询对应表的metadata,然后拼接成最终的结果展示给用户的原创 2023-02-16 15:35:39 · 1319 阅读 · 0 评论 -
SparkSql中多个Stage的并发执行
Spark中多个Stage的并发执行总结原创 2023-02-16 14:59:07 · 798 阅读 · 0 评论 -
SparkSql序列化时列的ID是在哪里生成的呢?
SparkSql序列化时列的ID是在哪里生成的呢?原创 2023-02-16 14:32:03 · 128 阅读 · 0 评论 -
SparkSql中join和shuffle知识点梳理
SparkSql中join和shuffle知识点梳理原创 2023-02-15 15:56:37 · 213 阅读 · 0 评论 -
SparkSql全代码生成规则梳理-CollapseCodegenStages
SparkSql全代码生成规则(CollapseCodegenStages)梳理原创 2023-02-15 14:42:05 · 311 阅读 · 0 评论 -
额,关于笛卡尔积CartesianProduct
多积累,把自己平时遇到的,学到的一点点积累下来,慢慢的就变成了自己的底蕴原创 2023-02-15 14:24:11 · 139 阅读 · 0 评论 -
spark sql是如何比较复杂数据类型的?该如何利用呢?
大家对简单数据类型的比较都很清楚,但是针对array、map、struct这些复杂类型,spark sql是否支持比较呢?都是怎么比较的?我们该怎么利用呢?原创 2023-02-15 11:32:38 · 521 阅读 · 0 评论 -
澄清 | snappy压缩到底支持不支持split? 为啥?
凡是稍微有点深度的有问题,从网上求答案,真的是太难了......原创 2023-02-15 11:22:44 · 801 阅读 · 1 评论 -
Sparksql Expression的canonicalized(规范化)操作
Spark sql Expression的canonicalized(规范化)操作原创 2023-02-14 16:58:10 · 187 阅读 · 1 评论 -
Spark sql 谓词下推之CombineFilters及可以改进的地方
CombineFilters优化器还可以再做一些改进呀原创 2023-02-14 16:41:19 · 121 阅读 · 0 评论 -
spark sql非join情况的谓词下推优化器PushPredicateThroughNonJoin
PushPredicateThroughNonJoin是sparksql中非join情况的谓词下推的逻辑执行计划优化器原创 2023-02-13 17:38:11 · 142 阅读 · 0 评论 -
Spark sql逻辑执行计划优化器——EliminateOuterJoin【消除outerjoin】
所有优化器的前提:不影响查询结果,即要保证优化前和优化后两个sql执行的效果相同EliminateOuter原创 2023-02-14 16:11:04 · 138 阅读 · 0 评论 -
spark sql join情况下谓词下推优化器PushPredicateThroughJoin
为了更好理解PushPredicateThroughJoin优化器,先把EliminateOuterJoin 优化器看了~~原创 2023-02-14 15:15:42 · 374 阅读 · 0 评论 -
Spark sql Expression的deterministic属性
Spark sql Expression的deterministic属性对于算子树优化中判断谓词能否下推等很有必要原创 2023-02-13 16:34:24 · 194 阅读 · 0 评论 -
json_tuple一定比 get_json_object更高效吗?
我们在实际用的时候,不要盲从,用get_json_object也是没关系的,况且正常情况下,一次也不会取成千上万个key值... 重要的是要保证,我们的json字符串一定不要存的太长,太大,这样的话,不管用哪个函数,效率都不会好原创 2023-02-13 15:08:13 · 363 阅读 · 0 评论 -
with as 语句真的会把查询的数据存内存嘛?
面对网上的一些结论,我们要有自己的判断。从源码中找真相~~原创 2023-02-13 14:50:59 · 162 阅读 · 0 评论 -
SparkSql LogicalPlan的resolved变量
在阅读SparkSql源码过程中,可能会遇到的小知识点迷惑原创 2023-02-13 14:42:19 · 89 阅读 · 0 评论 -
AstBuilder.visitTableName详解
本文详解spark sql生成unresolved logical plan过程中visitTableName方法原创 2023-02-12 21:29:49 · 87 阅读 · 0 评论 -
从一个sql任务理解spark内存模型
之前是只知道内存模型理论上是怎么样的,这次拿到一个具体的任务,具体的executor来做对照分析,加深理解,在调内存参数时,也能有个依据原创 2023-02-12 20:22:59 · 200 阅读 · 0 评论 -
Spark sql 生成PhysicalPlan(源码详解)
1、SparkPlanner把Optimizer LogicalPlan转换为SparkPlan列表。SparkPlanner主要是通过物理计划策略(Strategy)作用于Optimizer LogicalPlan上,从而生成SparkPlan列表即Iterator[PhysicalPlan]。2、SparkStrategy主要定义了各种Strategy的具体实现,类似Analyzer 和 Optimizer 中定义的rule。原创 2023-02-11 16:58:18 · 152 阅读 · 0 评论 -
Spark sql规则执行器RuleExecutor(源码解析)
静下心来读源码,给想要了解spark sql底层解析原理的小伙伴们!【本文大纲】1、前言2、Strategy3、Batch(包含一个或多个Rule及一个策略)4、batches: Seq[Batch](Batch队列)5、execute(核心方法)原创 2023-02-10 15:39:17 · 330 阅读 · 0 评论 -
你真的了解Lateral View explode吗?--源码复盘
那问题来了?Lateral view explode 会产生shuffle吗?当然不会,毋庸置疑!其实一开始看执行计划就会发现,没有reduce任务呀~~这里的Join代表的是两份数据联接到一起的意思,并不是真正的意义上的join。另外,还有一点:大家要注意 加outer和不加outer的区别,在日常工作一定要注意,切记切记!不要丢了数据,还不知道为啥。原创 2023-02-10 15:24:07 · 369 阅读 · 0 评论