Spark SQL簡介

2018-12-20 13:50 更新

Spark為結(jié)構(gòu)化數(shù)據(jù)處理引入了一個稱為Spark SQL的編程模塊。它提供了一個稱為DataFrame的編程抽象,并且可以充當(dāng)分布式SQL查詢引擎。

Spark SQL的特性

以下是Spark SQL的功能 

集成

無縫地將SQL查詢與Spark程序混合。 Spark SQL允許您將結(jié)構(gòu)化數(shù)據(jù)作為Spark中的分布式數(shù)據(jù)集(RDD)進行查詢,在Python,Scala和Java中集成了API。這種緊密的集成使得可以輕松地運行SQL查詢以及復(fù)雜的分析算法。

統(tǒng)一數(shù)據(jù)訪問

加載和查詢來自各種來源的數(shù)據(jù)。 Schema-RDDs提供了一個有效處理結(jié)構(gòu)化數(shù)據(jù)的單一接口,包括Apache Hive表,鑲木地板文件和JSON文件。

Hive兼容性

在現(xiàn)有倉庫上運行未修改的Hive查詢。 Spark SQL重用了Hive前端和MetaStore,為您提供與現(xiàn)有Hive數(shù)據(jù),查詢和UDF的完全兼容性。只需將其與Hive一起安裝即可。

標(biāo)準(zhǔn)連接

通過JDBC或ODBC連接。 Spark SQL包括具有行業(yè)標(biāo)準(zhǔn)JDBC和ODBC連接的服務(wù)器模式。

可擴展性

對于交互式查詢和長查詢使用相同的引擎。 Spark SQL利用RDD模型來支持中查詢?nèi)蒎e,使其能夠擴展到大型作業(yè)。不要擔(dān)心為歷史數(shù)據(jù)使用不同的引擎。

Spark SQL架構(gòu)

下圖說明了Spark SQL的體系結(jié)構(gòu)

星火SQL架構(gòu)

此架構(gòu)包含三個層,即Language API,Schema RDD和數(shù)據(jù)源。

語言API

Spark與不同的語言和Spark SQL兼容。 它也是由這些語言支持的API(python,scala,java,HiveQL)。

模式RDD

Spark Core是使用稱為RDD的特殊數(shù)據(jù)結(jié)構(gòu)設(shè)計的。 通常,Spark SQL適用于模式,表和記錄。 因此,我們可以使用Schema RDD作為臨時表。 我們可以將此Schema RDD稱為數(shù)據(jù)幀。

數(shù)據(jù)源

通常spark-core的數(shù)據(jù)源是文本文件,Avro文件等。但是,Spark SQL的數(shù)據(jù)源不同。 這些是Parquet文件,JSON文檔,HIVE表和Cassandra數(shù)據(jù)庫。

我們將在隨后的章節(jié)中更多地討論這些。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號