前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据学习:Spark SQL入门简介

大数据学习:Spark SQL入门简介

作者头像
成都加米谷大数据
修改2020-11-19 18:13:38
9680
修改2020-11-19 18:13:38
举报
文章被收录于专栏:大数据开发大数据开发

在大数据学习当中,Spark框架所占的比重,还是非常高的。Hadoop和Spark基本上是大数据开发学习当中的重点内容,而Spark随着市场地位的不断提升,在学习阶段也得到更多的重视。今天的大数据学习分享,我们来对Spark当中的Spark SQL做个入门介绍。

Spark SQL是Spark生态圈当中的重要一员,甚至有坊间时有传言“Spark SQL将取代Apache Hive”,那么具体到底如何呢?

Spark SQL简介

事实上,Spark SQL的由来是在前代框架的基础上继承其优点而来的。这就不得不提到Shark和Hive两个组件了。

在第一代大数据技术框架Hadoop生态圈当中,为了降低使用MapReduce的难度,Hive出现了。作为当时唯一运行在hadoop上的SQL-on-Hadoop工具,Hive工具在使用当中,MapReduce计算模式I/O消耗极大,运行效率也比较低。

为了提升SQL-on-Hadoop的效率,于是就有了更多的工具产生,包括MapR的Drill、Cloudera的Impala、Shark。

这其中,Shark可以说就是Spark SQL的前身。Shark基于Hive进行了改进,比如引入缓存管理,改进和优化执行器等。Shark基于Spark引擎运行,使得SQL查询的速度得到10-100倍的提升。

后来,鉴于Shark对于hive的太多依赖,制约了Spark各个组件的相互集成,于是提出了Spark SQL项目。

SparkSQL抛弃原有Shark的代码,汲取了Shark的一些优点,如内存列存储(In-Memory Columnar Storage)、Hive兼容性等,重新开发了Spark SQL代码。

Spark SQL特点

1)引入新的RDD类型SchemaRDD,可以像传统数据库定义表一样来定义SchemaRDD。

2)在应用程序中可以混合使用不同来源的数据,如可以将来自HiveQL的数据和来自SQL的数据进行Join操作。

3)内嵌了查询优化框架,在把SQL解析成逻辑执行计划之后,最后变成RDD的计算。

RDD、DataFrame、DataSet的关系

在其后的发展当中,Spark SQL仍在不断优化,比较典型的就是RDD、DataFrame、DataSet概念的发展。

最初Spark使用RDD,但是SQL化的支持不太好;后来演变成DataFrame,类型转又不太安全;最后发展成DataSet兼容两者的优点。

RDD

RDD本身也叫做Resilient Distributed Dataset,即弹性分布式数据集。是Spark中最底层的数据抽象,只包含数据,不包含结构信息。需要反序列化才能知道内部存储的什么。

DataFrame

DataFrame除了数据本身,还记录了元数据信息,标识了每一列的字段类型和名称。相当于是RDD+Schema信息。

DataSet

Spark最顶层的数据抽象,不仅包含数据还包含schema信息,又能兼顾java对象格式。当DataSet中存储的是Row时,就是DataFrame。

今天的大数据学习分享,Spark SQL入门,以上就为大家做了一个简单的介绍了。大数据学习当中,Spark是重点部分,接下来我们也会继续对Spark生态圈的各个组件去逐一做介绍。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spark SQL简介
  • Spark SQL特点
  • RDD、DataFrame、DataSet的关系
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、Presto、Iceberg、Elasticsearch、StarRocks 等,以快速构建企业级数据湖仓。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档