SparkSQL概述

1.1. SparkSQL介绍

SparkSQL,就是Spark生态体系中的构建在SparkCore基础之上的一个基于SQL的计算模块。SparkSQL的前身不叫SparkSQL,而是叫做Shark。最开始的时候底层代码优化、SQL的解析、执行引擎等等完全基于Hive,总是Shark的执行速度要比Hive高出一个数量级,但是Hive的发展制约了Shark。因此在15年中旬的时候,Shark的负责人将Shark项目结束掉,重新独立出来的一个项目,就是SparkSQL。Spark SQL不再依赖Hive,做了独立的发展,逐渐的形成两条相互独立的业务:SparkSQL和Hive-On-Spark。在SparkSQL发展过程中,同时也吸收了Shark有些特点:基于内存的列存储、动态字节码优化技术。

SparkSQL是用于结构化数据处理的Spark模块,与基本的Spark RDD API不同,SparkSQL提供的接口为Spark提供了有关数据结构和正在执行的计算的更多信息。在内部,SparkSQL使用这些额外的信息来执行额外的优化。有几种与SparkSQL交互的方法,包括SQL和Dataset API。计算结果时,将使用相同的执行引擎,这与用于表示计算的API/语言无关。这种统一意味着开发人员可以轻松的在不同的API之间来回切换,基于API的切换提供了表示给定转换的最自然的方式。

SparkSQL的发展历史:

  • 2014年:SparkSQL 1.0版本正式发布。
  • 2015年:SparkSQL 1.3版本正式发布,新增了DataFrame编程模型,也是目前使用到的编程模型。
  • 2016年:SparkSQL 1.6版本正式发布,新增了Dataset编程模型,提供了强类型支持,也就是在RDD的每行数据添加了类型约束。适用于Java、Scala。
  • 2016年:SparkSQL 2.0版本正式发布。
  • 2019年:SparkSQL 3.0版本正式发布,性能得到大幅提升。

1.2. SparkSQL的特点

image-20230207102357353

1.3. 总结

SparkSQL就是Spark生态体系中用于处理结构化数据的一个模块。

  • 结构化数据是什么?
  • 存储在关系型数据库中的数据,就是结构化数据.
  • 半结构化数据是什么?
  • 类似xml、json等的格式的数据被称之为半结构化数据.
  • 非结构化数据是什么?
  • 音频、视频、图片等为非结构化数据.

换句话说,SparkSQL处理的就是二维表数据

相关推荐

  1. SparkSql Join Types详解

    2024-05-10 20:08:02       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 20:08:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 20:08:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 20:08:02       82 阅读
  4. Python语言-面向对象

    2024-05-10 20:08:02       91 阅读

热门阅读

  1. 5.9代码

    5.9代码

    2024-05-10 20:08:02      30 阅读
  2. eslint关闭的方法总结

    2024-05-10 20:08:02       25 阅读
  3. Spark安装教程

    2024-05-10 20:08:02       31 阅读
  4. LeetCode 每日一题 ---- 【2105. 给植物浇水 II】

    2024-05-10 20:08:02       27 阅读
  5. Redis 源码解析 - Redis 字典与迭代器

    2024-05-10 20:08:02       27 阅读
  6. 【Vue3源码学习】— CH3.5 renderer 详解

    2024-05-10 20:08:02       27 阅读
  7. TypeScript type类型别名

    2024-05-10 20:08:02       36 阅读
  8. Qt QShortcut快捷键类详解

    2024-05-10 20:08:02       31 阅读
  9. 十二届蓝桥杯Python组3月中/高级试题 第二题

    2024-05-10 20:08:02       27 阅读
  10. 智密腾讯云直播组建--准备腾讯云环境

    2024-05-10 20:08:02       30 阅读
  11. html中的整体布局该如何做

    2024-05-10 20:08:02       26 阅读
  12. nginx常用内置变量

    2024-05-10 20:08:02       24 阅读
  13. 在编程中,什么是类的继承?

    2024-05-10 20:08:02       28 阅读
  14. 获取最新的CVE信息

    2024-05-10 20:08:02       23 阅读