sparkSQL的前世今生
hive ->翻译成sql->解析成MR
shark->翻译成sql>解析成spark任务
- 在spark出现之前,Shark是专门针对于spark的构建大规模数据仓库系统的一个框架
- Shark与Hive兼容、同时也依赖于Spark版本
- Hivesql底层把sql解析成了mapreduce程序,Shark是把sql语句解析成了Spark任务
- 随着性能优化的上限,以及集成SQL的一些复杂的分析功能,发现Hive的MapReduce思想限制了Shark的发展。
- 最后Databricks公司终止对Shark的开发
- 决定单独开发一个框架,不在依赖hive,把重点转移到了sparksql这个框架上。
什么是sparkSQL
SparkSQL是apache Spark用来处理结构化数据的一个模块。(必须是结构化数据,否则无法映射成一张表)
sparkSQL的四大特性
易整合
- 将SQL查询与Spark程序无缝混合
- 可以使用不同的语言进行代码开发
- java
- scala
- python
- R
统一的数据源访问
-
以相同的方式连接到任何数据源
- sparksql后期可以采用一种统一的方式去对接任意的外部数据源
val dataFrame = sparkSession.read.文件格式的方法名("该文件格式的路径")
兼容hive
- sparksql可以支持hivesql这种语法 sparksql兼容hivesql
支持标准的数据库连接
- sparksql支持标准的数据库连接JDBC或者ODBC