Spark SQL的发展及特点

目录

概述   

特点

总结


概述   

        SparkSQL,顾名思义,就是Spark⽣态体系中的构建在SparkCore基础之上的⼀个基于SQL的计算模块。

        Hadoop刚开始出来的时候,使用的是hadoop自带的分布式计算系统MapReduce,但是MapReduce的使用难度较大,所以就开发了Hive,Hive编程用的是类SQL的HQL的语句,这样编程的难度就大大的降低了,Hive的运行原理就是将HQL语句经过语法解析、逻辑计划、物理计划转化成MapReduce程序执行。当Spark出来以后,Spark团队也开发了一个Shark,就是在Spark集群上安装一个Hive的集群,执行引擎是Hive转化成Mapreduce的执行引擎,这样的框架就是Hive  on  Spark,但是这样是有局限性的,因为Shark的版本升级是依赖Hive的版本的,所有2014年7月1日spark团队就将Shark转给Hive进行管理,shark负责⼈,将shark项⽬结束掉,重新独⽴出来的⼀个项⽬,就是sparksql,不在依赖hive,做了独⽴的发展,逐渐的形成两条互相独⽴的业务,SparkSQLHive-On-Spark。在SparkSQL发展过程中,同时也吸收了Shark有 些的特点:基于内存的列存储,动态字节码优化技术。Spark团队开发了一个SparkSQL,这个计算框架就是将Hive on Spark的将SQL语句转化为Spark RDD的执行引擎换成自己团队从新开发的执行引擎。Spark SQL经历了几次的更新,演变历程如下:

-1  1.0版本以前

Hive on Spark   Shark

-2  1.0.x版本

Spark SQL

      Alpha版本(测试版本,不建议商业项目使用)

这个版本让Spark升为了Apache的顶级项目。

-3  1.3.x版本

SparkSQL  DataFrame

Release(成熟,可以使用)

-4  spark 1.5.x版本

     钨丝计划(底层代码的优化)

-5  spark 1.6.x版本

     DataSet(alpha版本)

-6  Spark 2.x.x版本

      DataSet(正式的)

      Structrued Streaming

特点

        官网上第一句话:“ Spark SQL is Apache Spark’s module for working with structured data. ”
Spark SQL是Apache Spark处理结构化数据的模块

官网地址:https://spark.apache.org/sql/

集成
无缝地将SQL查询与Spark程序混合。
Spark SQL允许您使用SQL或熟悉的DataFrame API在Spark程序中查询结构化数据。适用于Java、Scala、Python和R语言。

 
统一的数据访问
以相同的方式连接到任何数据源。
DataFrames和SQL提供了一种访问各种数据源的通用方法,包括Hive、Avro、Parquet、ORC、JSON和JDBC。您甚至可以通过这些源连接数据。

 
hive集成

在现有仓库上运行SQL或HiveQL查询。
Spark SQL支持HiveQL语法以及Hive SerDes和udf,允许您访问现有的Hive仓库。

标准的连接
通过JDBC或ODBC连接。
服务器模式为业务智能工具提供了行业标准JDBC和ODBC连接。

总结

        SparkSQL就是 Spark ⽣态体系中⽤于处理结构化数据的⼀个模块。结构化数据是什么?存储在关系型数据库中的数据,就是结构化数据;半结构化数据是什么?类似xml json 等的格式的数据被称之为半结构化数据;⾮结构 化数据是什么?⾳频、视频、图⽚等为⾮结构化数据。
        换句话说,SparkSQL 处理的就是⼆维表数据。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值