当前位置:   article > 正文

SparkSql 介绍;Hive & Shark & SparkSQL 区别_shark和hive的关系

shark和hive的关系

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
  • 2
  • 3
  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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号