🗒️SparkSQL内核剖析 第三章(下)
2023-6-29
| 2023-6-30
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password

第三章 Spark SQL 执行全过程概述(下)

Spark SQL 内部实现逻辑计划、物理计划的基础框架称为 Catalyst。
这里介绍 Catalyst 涉及的重要概念和数据结构。

InternalRow 体系

InternalRow 就是用来表示一行行数据的类。

TreeNode 体系

TreeNode 类是 SparkSQL 中所有树结构的基类,定义了系列通用的集合操作和树遍历操作接口。
TreeNode 内部包含一个 Seq[BaseType]类型的变量 children 来表示孩子节点。
notion image
TreeNode 定义了 foreach、 map、 collect 等针对节点操作的方法,以及 transformUp、 transformDown 等遍历节点并对匹配节点进行相应转换的方法。
notion image
TreeNode 一直在内存里维护,不会 dump 到磁盘以文件形式存储,且无论在映射逻辑执行计划阶段,还是优化逻辑执行计划阶段,树的修改都是以替换已有节点的方式进行的。

Expression 体系

表达式一般指的是不需要触发执行引擎而能够直接进行计算的单元,例如加减乘除四则运算、逻辑操作、转换操作、过滤操作等。Expression 类中,主要定义了五个方面的操作,包括基本属性、核心操作、输入输出、字符串表示和等价性判断。
notion image
在 Spark SQL 中,Expression 本身也是 TreeNode 类的子类,因此能够调用所有 TreeNode 方法,例如 transform 等,也可以通过多级的子 Expression 组合成复杂的 Expression。

数据类型系统

Catalyst 实现了完善的数据类型系统。所有的数据类型都继承自 AbstractDataType 抽象类。
notion image
  • Spark
  • SparkSQL内核解析
  • SparkSQL内核剖析 第三章(上)SparkSQL内核剖析 第四章
    Loading...
    目录