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