Spark生態(tài)圈小貼士

學(xué)習(xí)Spark的基本組件,主要由SparkSql、SparkStreaming等構(gòu)成,簡單理解其基本原理,構(gòu)建Spark生態(tài)的全貌。

一、Spark Sql常識

Spark Sql提供了對于結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)的快速操作,主要具備以下三種功能,

(1)從多種結(jié)構(gòu)化數(shù)據(jù)源(json、parquet和hive)中讀取數(shù)據(jù)

(2)支持Spark應(yīng)用程序內(nèi)部調(diào)用和外部工具通過標(biāo)準(zhǔn)連接器連接Spark Sql進(jìn)行查詢

(3)Spark Sql中sql與Java/Python/Scala代碼高度整合

二、Spark Streaming常識

(1)Spark Streaming中使用離散化流作抽象表示并稱為DStream,其由RDD組成的隊列

(2)Spark Streaming支持兩種操作,轉(zhuǎn)化操作和輸出操作,轉(zhuǎn)化操作輸出為新的DStream,輸出操作將結(jié)果輸出到硬盤上。轉(zhuǎn)化操作包括無狀態(tài)和有狀態(tài),重點關(guān)注有狀態(tài)的轉(zhuǎn)化操作。

(3)有狀態(tài)的操作主要是兩種類型,一種以時間階段為滑動窗口進(jìn)行操作,一種用來跟蹤每個鍵的狀態(tài)變化?;诖翱诘牟僮餍枰獌蓚€參數(shù),分別為窗口時長和滑動步長,兩者都必須是SparkContext設(shè)置的批次間隔的整數(shù)倍,前者控制每次計算最近的多少個批次的數(shù)據(jù),后者用來控制對新的DStream進(jìn)行計算的間隔,如圖所示,

1-基于窗口的轉(zhuǎn)化操作

當(dāng)需要在DStream跨批次維護(hù)狀態(tài)時,使用updateStateByKey()為我們提供對一個狀態(tài)變量的訪問,用于鍵值對形式的DStream,比如跟蹤用戶訪問網(wǎng)站的會話。

Spark體系

大數(shù)據(jù)時代

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容