SparkSQL和Hive有什么異同?
SparkSQL和Hive的異同
Hive和Spark 均是:“分布式SQL計(jì)算引擎”
均是構(gòu)建大規(guī)模結(jié)構(gòu)化數(shù)據(jù)計(jì)算的絕佳利器,同時(shí)SparkSQL擁有更好的性能。

目前,企業(yè)中使用Hive仍舊居多,但SparkSQL將會在很近的未來替代Hive成為分布式SQL計(jì)算市場的頂級
SparkSQL的數(shù)據(jù)抽象
回顧Pandas和SparkSQL的數(shù)據(jù)抽象

Pandas - DataFrame
· 二維表數(shù)據(jù)結(jié)構(gòu)
·?單機(jī)(本地)集合
SparkCore - RDD
·?無標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu),存儲什么數(shù)據(jù)均可
·?分布式集合(分區(qū))
SparkSQL - DataFrame
·?二維表數(shù)據(jù)結(jié)構(gòu)
·?分布式集合(分區(qū))

SparkSQL 其實(shí)有3類數(shù)據(jù)抽象對象
·?SchemaRDD對象(已廢棄)
·?DataSet對象:可用于Java、Scala語言
·?DataFrame對象:可用于Java、Scala、Python、R
我們以Python開發(fā)SparkSQL,主要使用的就是DataFrame對象作為核心數(shù)據(jù)結(jié)構(gòu)

在SparkSQL當(dāng)中,Spark為我們提供了兩個(gè)操作SparkSQL的抽象,分別是DataFrame和DataSet。也就是說我們操作SparkSQL一般都是使用DataFrame或者DataSet來實(shí)現(xiàn)的。
RDD(Spark1.0)? ==>? DataFrame(1.3)? ?==>? DataSet(1.6)
