Spark SQL 源码分析(四):SessionCatalog

SessionCatalog 是底层元数据(基于内存和基于 Hive)的代理,同时也负责临时视图和函数的管理。 SessionCatalog 类图: ExternalCatalog ExternalCatalog 用于管理数据库、表、分区和函数,在 Spark SQL 中具体有两个实现: InMemoryCatalog HiveExternalCatalog InMemoryCatalog 是 ExternalCatalog 基于内存(内部使用 scala.collection. »

Spark SQL 源码分析(三):SqlParser

SQL on Hadoop 按 SQL 解析可分为两大阵营: ANTLR Apache Calcite ANTLR 阵营的包括:Apache Hive、Apache Spark、Presto。Apache Calcite 阵营的包括:Apache Flink、Apache Kylin。 下面以 SparkSession 的 »

学习 Hive(十一):视图

Hive 视图是逻辑视图,即只保存元数据不保存数据。视图是封装思想的体现,隐藏了视图复杂的处理(过滤、子查询、分组、连接等),简化了查询。视图是只读的。 视图定义 CREATE VIEW IF NOT EXISTS order_summary AS SELECT order_id, SUM(amount) AS »

学习 Hive(十):窗口函数

窗口函数语法: Function() OVER ([PARTITION BY <...>] [ORDER BY <...>] [Window Specification]) PARTITION BY 定义窗口分区,控制哪些数据行和当前数据行在同一个分区。 ORDER BY 定义窗口排序,控制分区内的排序方式,决定了当前行在分内的位置。 Window Specification 定义窗口帧,根据当前行的位置声明哪些行将包含在帧中。 »

学习 Hive(九):排序

ORDER BY Hive 中 ORDER BY 的行为与关系型数据库的 ORDER BY 行为一致,实现了数据集的全局排序,支持升序(ASC)和降序(DESC)。 SORT BY Hive 中的 SORT BY 实现了数据集的 Map 排序,为每个 reducer »