SparkSql 介绍;Hive & Shark & SparkSQL 区别

1.SparkSQL 支持Spark 写SQL处理分布式数据。

2.SparkSQL 发展过程:
Hive -> Shark -> SparkSQL
Hive & Shark & SparkSQL 区别?
1).Hive 支持写SQL 查询分布式数据,底层Hive负责SQL解析优化,转成MapReduce任务处理数据。
2).Shark 是早期Spark与Hive整合出来的,支持Sprak中写SQL查询分布式数据技术,Shark依赖了hive的解析优化SQL,底层转成Spark任务处理数据。
3).SparkSQL是基于Shark演变过来,SparkSQL脱离了Hive的限制,与Hive做到了解耦。
4).Shark兼容Hive语言,SparkSQL兼容Hive与Shark语法。
5).SparkSQL可以针对原生的RDD进行查询,查询得到的结果又可以转换成RDD去使用。

3.两种组合
Hive on Spark:–Shark
Hive:负责SQL解析优化,存储。
Spark:Spark是底层执行引擎。

Spark on Hive : --SparkSQL
	Hive : 负责存储
	Spark : Spark负责SQL解析优化,执行引擎。
  1. RDD & Dataset & DataFrame什么区别?
    1).RDD是弹性分布式数据集,RDD是SparkCore底层核心操作的对象
    2).Dataset是SparkSQL中底层操作的核心对象,Dataset与RDD类型有分区,是分布式的,只是底层处理数据时,不需要将字节数组反序列化成对象操作,数据处理速度快。
    3).DataFrame = Dataset[Row] ,如果想要在SparkSQL中使用SQL处理数据需要得到DataFrame。

  2. SparkConf & SparkContext & SQLContext &HiveContext & SparkSession
    1).SparkConf 是Spark的配置对象,编写SparkApplication时,可以直接对当前SparkApplication做配置
    2).SparkContext 是Spark Core中通往集群的唯一通道,有了SparkContext就可以创建RDD,处理数据。
    3).SQLContext 是Spark2.0 版本之前推出的SparkSQL中操作的对象,想要使用SparkSQL处理数据,需要创建出SQLContext读取文件加载DataFrame
    4).HiveContex 是SQLContext的子类,需要读取Hive中的数据时,需要创建这个对象。
    5).SparkSession 是Spark2.0+之后推出的兼容SparkConf,SparkContext,SQLContext,HiveContext的对象,一个对象可以搞定以上多个对象

6.创建DataFrame的方式
1).读取json格式的数据获取DataFrame

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值