Spark SQL簡介

Spark為結構化數據處理引入了一個稱為Spark SQL的編程模塊。它提供了一個稱為DataFrame的編程抽象,並且可以充當分佈式SQL查詢引擎。

Spark SQL的特性

以下是Spark SQL的功能

集成

無縫地將SQL查詢與Spark程序混合。 Spark SQL允許您將結構化數據作為Spark中的分佈式數據集(RDD)進行查詢,在Python,Scala和Java中集成了API。這種緊密的集成使得可以輕鬆地運行SQL查詢以及複雜的分析算法。

統一數據訪問

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

Hive兼容性

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

標準連接

通過JDBC或ODBC連接。 Spark SQL包括具有行業標準JDBC和ODBC連接的服務器模式。

可擴展性

對於交互式查詢和長查詢使用相同的引擎。 Spark SQL利用RDD模型來支持中查詢容錯,使其能夠擴展到大型作業。不要擔心為歷史數據使用不同的引擎。

Spark SQL架構

下圖說明了Spark SQL的體系結構

Spark SQL簡介

此架構包含三個層,即Language API,Schema RDD和數據源。

語言API

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

模式RDD

Spark Core是使用稱為RDD的特殊數據結構設計的。 通常,Spark SQL適用於模式,表和記錄。 因此,我們可以使用Schema RDD作為臨時表。 我們可以將此Schema RDD稱為數據幀。

數據源

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

我們將在隨後的章節中更多地討論這些。


分享到:


相關文章: