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