什么是SparkSQL?为什么要学习SparkSQL?
1 什么是SparkSQL

SparkSQL 是Spark的一个模块, 用于处理海量结构化数据
限定: 结构化数据处理

第一、针对结构化数据处理,属于Spark框架一个部分

schema信息,包含字段的名称和字段的类型,比如:JSON、XML、CSV、TSV、MySQL Table、ORC、Parquet,ES、MongoDB等都是结构化数据;
第二、抽象数据结构:DataFrame
DataFrame = RDD + Schema信息;
第三、分布式SQL引擎,类似Hive框架
从Hive框架继承而来,Hive中提供bin/hive交互式SQL命令行及HiveServer2服务,SparkSQL都可以;
Spark SQL模块架构示意图如下

备注:Catalog就是Spark 2.0之后提供的访问元数据的类:Catalog提供一些API用来对数据库、表、视图、缓存、列、函数(UDF/UDAF)进行操作
2 为什么学习SparkSQL

由于MapReduce这种计算模型执行效率比较慢,rdd原生代码较为复杂,所以Spark SQL应运而生,它是将Spark SQL转换成RDD,然后提交到集群中去运行,执行效率非常快!(查看官网学习)
SparkSQL是非常成熟的 海量结构化数据处理框架.
学习SparkSQL主要在2个点:
1. SparkSQL本身十分优秀, 支持SQL语言\性能强\可以自动优化\API简单\兼容HIVE等等
2. 企业大面积在使用SparkSQL处理业务数据
· 离线开发
· 数仓搭建
· 科学计算、数据分析
3 SparkSQL的特点
融合性
SQL可以无缝集成在代码中, 随时用SQL处理数据

统一数据访问
一套标准API可读写不同数据源

Hive兼容
可以使用SparkSQL直接计算并生成Hive数据表
标准化连接
支持标准化JDBC\ODBC连接, 方便和各种数据库进行数据交互.
SparkSQL模块官方文档:
http://spark.apache.org/docs/3.1.2/sql-programming-guide.html
