0. 介绍:
(1)Spark SQL 的前身是 Shark, 即 Hive on Spark,
1.SparkSQL 特点:
(1)支持多种数据源: Hive,RDD,Parquet,JSON,JDBC 等.
(2)多种性能优化技术: in-memory columnar storage,byte-code generation,cost model 动态评估等
(3)组件扩展: 对于 SQL 的语法解析器, 分析器以及优化器, 用户都可以自己重新开发, 并且动态扩展. SparkSQL 的性能对比 Shark 来说, 又有了数倍的提升.
2.SparkSQL 和 DataFrame
(1)SparkSQL 是 Spark 中的一个模块, 主要用于进行结构化数据的胡处理. 它提供了一个一个最核心的编程抽象, 就是 DataFrame. 同时 SparkSQL 还可以作为分布式的 SQL 查询引擎. SparkSQL 最重要的功能之一就是从 Hive 中查询数据.
(2)DataFrame 可以理解为是以列的形式组织的分布式的数据集合, 它和关系型数据库中的表非常相似, 但是底层做了很多的优化. DataFrame 可以通过很多源来构建, 如结构化数据文件, Hive 中的表, 外部的关系型数据库以及 RDD.
(3)Spark 在 RDD 基础上, 提供了 DataFrame 和 Dataset 用户编程接口, 并且在跨语言 ( Scala , Java ,Python 和 R) 方面具有很好的支持 . 为了追求简化, 降低开发人员的学习成本, 从 Spark 2.0 开始, DataFrame 和 Dataset 进行了统一.
3.SparkContext
(1)SparkContext 对象的创建
java 版本:
scala 版本的对象创建
来源: http://www.bubuko.com/infodetail-3136183.html