更新時間:2021年10月29日16時53分 來源:傳智教育 瀏覽次數:
Spark SQL的前身是Shark,Shark最初是美國加州大學伯克利分校的實驗室開發(fā)的Spark生態(tài)系統(tǒng)的組件之一,它運行在Spark系統(tǒng)之上,Shark重用了Hive的工作機制,并直接繼承了Hive的各個組件,Shark將SQL語句的轉換從MapReduce作業(yè)替換成了Spark作業(yè),雖然這樣提高了計算效率,但由于Shark過于依賴Hive,因此在版本迭代時很難添加新的優(yōu)化策略,從而限制了Spark的發(fā)展,在2014年,伯克利實驗室停止了對Shark的維護,轉向Spark SQL的開發(fā)。Spark SQL主要提供了以下3個功能。
(1)SparkSQL可以從各種結構化數據源(如JSON、Hive、Parquet等)中讀取數據,進行數據分析。
(2)Spark SQL包含行業(yè)標準的JDBC和ODBC連接方式,因此它不局限于在Spark程序內使用SQL語句進行查詢。
(3)SparkSQL可以無縫地將SQL查詢與Spark程序進行結合,它能夠將結構化數據作為Spark中的分布式數據集(RDD)進行查詢,在Python、Scala和Java中均集成了相關API,這種緊密的集成方式能夠輕松地運行SQL查詢以及復雜的分析算法。
總體來說,SparkSQL支持多種數據源的查詢和加載,兼容Hive,可以使用JDBC/ODBC的連接方式來執(zhí)行SQL語句,它為Spark框架在結構化數據分析方面提供重要的技術支持。
猜你喜歡: