文章目录
- 1. SparkSQL介绍及使用
- 1.1 SparkSQL介绍
- 1.2 数据结构的形式
- 1.3 Spark SQL 特点
- 1.4 Spark SQL 和 Hive SQL关系
1. SparkSQL介绍及使用
1.1 SparkSQL介绍
Spark SQL是Apache Spark 用于处理结构化数据
(DataFrame
和Datasets
)的模块。
在Spark1.0版本时引入了Spark SQL。
1.2 数据结构的形式
- 结构化数据
- 表,DataFrame,Datasets
- 构成
- 元数据 描述数据的数据(描述信息,类型约束)
- 数据本身
身高 |
---|
179 |
173 |
170 |
163 |
- 半结构化数据
- json,xml,有数据的描述信息,但是对数据内容的类型无法约束。
{"name":"lxyxp"
}
- 非结构化数据
- 文本文件
- 图片文件
- 视频文件
- 音频文件
总结 :
- Spark SQL 可以将非结构化,半结构化数据统一转化为结构化数据处理。
- Spark中使用的结构化数据有DataFrame,映射表(离线数仓开发使用)。
1.3 Spark SQL 特点
- 易整合
- 使用sql配合Spark一起使用,封装了不同语言的DSL方法。
- 统一数据访问
- 使用read方法可以读取HDFS数据,MySQL数据,不同类型的文件数据(json、csv、orc)
- 使用write方法可以写入HDFS、MySQL不同类型的文件
- 兼容hive
- 使用Hive SQL方法
- 标准的数据连接
- 使用JDBC和ODBC连接方式连接Spark SQL
1.4 Spark SQL 和 Hive SQL关系
- shark
- 运行的模式是Hive on Spark
- 会将Hive SQL 转换为Spark的RDD
- shark是基于Hive开发的,维护麻烦,2015年停止维护。
- Spark SQL
- 是Spark团队独立开发的工具,2014年发布1.0版本。
- Spark SQL工具对Spark的兼容性更好,优化性能得到提升。
- Spark SQL本质也是将SQL语句转化为RDD执行,catalyst引擎负责将sql转化为rdd。
- sparkSQL可以连接使用hive的metastore服务,管理表的元数据。