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的體系結構
此架構包含三個層,即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數據庫。
我們將在隨後的章節中更多地討論這些。
閱讀更多 會飛的魚go 的文章