SparkSQL 入门简介

1.SparkSQL概述

SparkSQL的前身是Shark,它的底层依赖于Hive,因此其发展受制于Hive的发展,后来项目组将Shark废弃,保留了其中非常优秀的特点:比如内存存储技术动态字节码技术等,重新组织了一个项目,这个项目就是SparkSQL,通过Spark去操作Hive,即Spark-on-Hive,同时在hive里面也推出了一个子模块,是hive的计算引擎基于spark,即hive-on-spark

需要明确的是,sparkCore中的编程模型是RDD,在SparkSQL中的编程模型是DataFrame,在spark1.6之后又做了进一步的升级Dataset

我们把RDD称之为Spark的第一代编程模型,DataFrame成为第二代编程,Dataset则是第三代编程模型。

2.SparkSQL的特点
1) 可集成

混合SQL查询和spark程序

2)统一数据入口

连接任何数据源采用同样的方式

3) 整合Hive

基于已有的数据仓库,执行SQL或者HSQL查询

4)标准连接

提供了JDBC/ODBC的方式连接商业集成工具(如MySQL等)

3. 编程模型

正如上面所说到的,其编程模型是DataFrame或者Dataset,DataFrame就是一张二维表,相比较RDD多了一行额外的信息,即关系型数据库中的表头。而Dataset则集成了RDD与DataFrame两者的优点,包括RDD的强类型推断,以及非常大的lambda表达式和DataFrame的执行优化器。

4.SparkSQL编程的入口

Spark中编程的入口,就是各种各样的Context,在SparkSQL也不例外,Spark1.6以前,SparkSQL唯一的入口就是SQLContext,及其子类HiveContext,在Spark1.6之后,便又提供了一个SQLContext和HiveContext的集成者——SparkSession。此时SparkSession就成为了SparkSQL的入口,当然这些不管是SQLContext还是HiveContext还是SparkSession,其底层仍然依赖的是SparkContext。

需要额外添加的maven依赖:

<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-sql_2.11</artifactId>
  <version>2.2.2</version>
</dependency>
5.SparkSession的创建
val spark=SparkSession.builder().master("local[*]").applName("SparkSQLOps").getOrCreate()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值