spark-sql的概述以及编程模型的介绍

  

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的概述以及编程模型的介绍”> <br/>     <强>在代码开发的时候创建</强>:</p>
  <pre> <代码> val相依=new SparkConf ()
  val火花:SparkSession=SparkSession.builder ()
  .appName (“_01spark_sql”)
  . config(配置)
  .getOrCreate() </代码> </pre>
  <h4>(2)抽样:</h4>
  <p>这里主要说的是抽样的局限性:<br/>    ——抽样是不支持spark-sql的<br/>    ——抽样仅表示数据集,抽样没有元数据,也就是说没有字段语义定义<br/>    ——抽样需要用户自己优化程序,对程序员要求较高<br/>    ——从不同数据源读取数据相对困难,读取到不同格式的数据都必须用户自己定义转换方式合并多个数据源中的数据也较困难</p>
  <h4> (3) DataFrame: </h4>
  <p>   &emsp DataFrame被称为SchemaRDD。以行为单位构成的分布式数据集合,按照列赋予不同的名称。对选择、鱼片、聚合和排序等操作符的抽象。其中模式是就是元数据,是语义描述信息.DataFrame是分布式的行对象的集合。<br/>     <强> DataFrame=抽样+模式=SchemaRDD </强> <br/>    <>强优势</强>:<br/>    ——DataFrame是一种特殊类型的数据集,数据集(行)=DataFrame <br/>    ——DataFrame自带优化器催化剂,可以自动优化程序<br/>    ——DataFrame提供了一整套的数据源API <br/>    <>强特点</强>:<br/>    ——支持单级机KB到集群PB级的数据处理<br/>    ——支持多种数据格式和存储系统<br/>    ——通过火花SQL催化剂优化器可以进行高效的代码生成和优化<h2 class=spark-sql的概述以及编程模型的介绍