文章目录
一、SparkSQL概述
(一)SparkSQL简史
SparkSql的前身叫做Shark。Shark是在Hive的基础上,替换了其中的计算引擎,从MR换成Spark从而提升了效率。但是之后,为了减少对Hive的依赖,Spark的设计者,放弃了Shark重新开发了SparkSQL。由于底层的Spark比MR的效率要高很多,所以SparkSQL的效率也要比Hive高很多。现在越来越流行起来了。
但是,随着Spark的发展,对于野心勃勃的Spark团队来说,Shark对于Hive的太多依赖(如采用Hive的语法解析器、查询优化器等等),制约了Spark的One Stack rule them all的既定方针,制约了Spark各个组件的相互集成,所以提出了SparkSQL项目。SparkSQL抛弃原有Shark的代码,汲取了Shark的一些优点,如内存列存储(In-Memory Columnar Storage)、Hive兼容性等,重新开发了SparkSQL代码;由于摆