1,火花sql的概述
(1)火花sql的介绍:
火花SQL是用火花来<强>处理结构化数据强>(结构化数据可以来自外部结构化数据源也可以通过抽样获取)的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。
外部的结构化数据源包括<强> JSON,拼花(默认),rmdb,蜂巢强>等。当前火花SQL使用催化剂优化器来对SQL进行优化,从而得到更加高效的执行方案,并且可以将结果存储到外部系统。
(2)火花sql的特点:
——容易整合
——统一的数据访问方式
——兼容蜂巢
——标准的数据连接
(3)关于火花sql的版本迭代:
——火花sql的前身是鲨鱼。但是火花sql抛弃了原有鲨鱼的代码,汲取了鲨鱼的一些优点,如:列存储(内存中的柱状存储),蜂巢兼容性等,重新开发SparkSQL。
- -1.1引发2014年9月11日,发布Spark1.1.0.Spark从1.0开始引入SparkSQL(鲨鱼不再支持升级与维护).Spark1.1.0变化较大是SparkSQL和MLlib
- -1.3火花增加了dataframe新
- -1.4火花增加了窗口分析函数
1.5 -火花钨丝计划.Hive中有UDF与UDAF,火花中对UDF支持较早
- 1.6火花执行的sql中可以增加“——“注释,火花——1.5/1.6的新特性,引入数据集的概念
-火花2。x SparkSQL + DataFrame +数据集(正式版本),结构化流(数据集),引入SparkSession统一了抽样,DataFrame,数据集的编程入口
2,火花sql的编程模型
(1) sparkSession的介绍:
&emsp SparkSession是火花- 2.0引如的新概念.SparkSession为用户提供了统一的切入点,来让用户学习火花的各项功能。
随着数据集和DataFrame的API逐渐成为标准的API, SparkSession作为数据集和DataFrame API的切入点,SparkSession封装了SparkConf, SparkContext和SQLContext。为了向后兼容,SQLContext和HiveContext也被保存下来。
<强>特点:强>
——为用户提供一个统一的切入点使用火花各项功能
——允许用户通过它调用DataFrame和数据集相关的API来编写程序
,减少了用户需要了解的一些概念,可以很容易的与火花进行交互
——与火花交互之时不需要显示的创建SparkConf, SparkContext以及SQlContext,这些对象已经封闭在SparkSession中
——SparkSession提供对蜂巢特征的内部支持:用HiveQL写SQL语句,访问蜂巢udf,从蜂巢表中读取数据
<强> SparkSession的创建强>:
<强>在spark-shell中强> SparkSession会被自动初始化一个对象叫做火花,为了向后兼容,spark-shell还提供了一个SparkContext的初始化对象,方便用户操作:
spark-sql的概述以及编程模型的介绍