数据分析方式
-
有如下的两种方式,各有优缺点:
-
1.
代码命令风格
:- 就是之前写的RDD/MapReduce之类的代码
- 灵活/操作粒度细/支持复杂操作
- 入门门槛高需要会一门编程语言
- 实现机器学习较为方便
- …
-
2.
SQL风格
:- 就是之前写的HiveSQL之类的sql语句
- 简单sql容易理解,入门门槛低,会sql就行
- 复杂sql不容易理解
- 很难实现机器学习
- …
-
但是对于一个功能完善/成熟的大数据框架来说,肯定是想着不光要支持代码命令风格,还要支持SQL风格
-
所以Spark框架就推出了SparkSQL模块来实现上面两种操作方式的实现
-
但是SparkSQL的诞生历史没有那么顺利,走了很多弯路
SparkSQL的发展史
- SparkSQL不是Spark框架一诞生就有的
- 而是在后续的发展过程中逐渐完善的,发展到我们现在使用的Spark2.2.0,SparkSQL已经趋于稳定了,功能也十分强大了
数据分类
结构化数据
类似于数据库表,有固定的约束Schema(有固定的列名和类型约束)
半结构数据
如下面的json就是半结构化数据,没有固定的Schema(如类型不固定,字段不固定)
非结构化数据
- 图片、视频、音频。。。。这些都是非结构化数据
SparkSQL适用场景
- 注意:
- SparkSQL的应用场景主要是
结构化数据
和较为规范的半结构化数据
- 而对于非结构化数据SparkSQL不能够直接处理,除非先对他们进行结构化处理再使用SparkSQL
- SparkSQL的应用场景主要是
Spark SQL官方介绍