大數(shù)據(jù)之Spark知識(shí)點(diǎn)集合

Spark是基于內(nèi)存的迭代計(jì)算框架,適用于需要多次操作特定數(shù)據(jù)集的應(yīng)用場(chǎng)合。需要反復(fù)操作的次數(shù)越多,所需讀取的數(shù)據(jù)量越大,受益越大,數(shù)據(jù)量小但是計(jì)算密集度較大的場(chǎng)合,受益就相對(duì)較小(大數(shù)據(jù)庫(kù)架構(gòu)中這是是否考慮使用Spark的重要因素)。

1、Spark的核心是什么?

RDD是Spark的基本抽象,是對(duì)分布式內(nèi)存的抽象使用,實(shí)現(xiàn)了以操作本地集合的方式來(lái)操作分布式數(shù)據(jù)集的抽象實(shí)現(xiàn)。RDD也是Spark非常核心的東西,它表示已被分區(qū),不可變的并能夠被并行操作的數(shù)據(jù)集合,不同的數(shù)據(jù)集格式對(duì)應(yīng)不同的RDD實(shí)現(xiàn)。

RDD必須是可序列化的。RDD可以cache到內(nèi)存中,每次對(duì)RDD數(shù)據(jù)集的操作之后的結(jié)果,都可以存放到內(nèi)存中,下一個(gè)操作可以直接從內(nèi)存中輸入,省去了MapReduce大量的磁盤IO操作。這對(duì)于迭代運(yùn)算比較常見(jiàn)的機(jī)器學(xué)習(xí)算法, 交互式數(shù)據(jù)挖掘來(lái)說(shuō),效率提升比較大。

2、Spark的適用場(chǎng)景有哪些?

由于RDD的特性,Spark不適用那種異步細(xì)粒度更新狀態(tài)的應(yīng)用,例如web服務(wù)的存儲(chǔ)或者是增量的web爬蟲和索引。就是對(duì)于那種增量修改的應(yīng)用模型不適合。總的來(lái)說(shuō)Spark的適用面比較廣泛且比較通用。

3、Spark支持的編程語(yǔ)言有哪幾種?

Spark通過(guò)與編程語(yǔ)言集成的方式暴露RDD的操作,類似于DryadLINQ和FlumeJava,每個(gè)數(shù)據(jù)集都表示為RDD對(duì)象,對(duì)數(shù)據(jù)集的操作就表示成對(duì)RDD對(duì)象的操作。Spark主要支持的編程語(yǔ)言是Scala、java、python。

Scala

Spark使用Scala開發(fā),默認(rèn)使用Scala作為編程語(yǔ)言。編寫Spark程序比編寫Hadoop MapReduce程序要簡(jiǎn)單的多,SparK提供了Spark-Shell,可以在Spark-Shell測(cè)試程序。

Java

Spark支持Java編程,但對(duì)于使用Java就沒(méi)有了Spark-Shell這樣方便的工具,其它與Scala編程是一樣的,因?yàn)槎际荍VM上的語(yǔ)言,Scala與Java可以互操作,Java編程接口其實(shí)就是對(duì)Scala的封裝。

Python

現(xiàn)在Spark也提供了Python編程接口,Spark使用py4j來(lái)實(shí)現(xiàn)python與java的互操作,從而實(shí)現(xiàn)使用python編寫Spark程序。Spark也同樣提供了pyspark,一個(gè)Spark的python shell,可以以交互式的方式使用Python編寫Spark程序。

在這里我還是要推薦下我自己建的大數(shù)據(jù)學(xué)習(xí)交流qq裙:788483959 (大數(shù)據(jù)資料分享), 裙 里都是學(xué)大數(shù)據(jù)開發(fā)的,如果你正在學(xué)習(xí)大數(shù)據(jù) ,小編歡迎你加入,大家都是軟件開發(fā)黨,不定期分享干貨(只有大數(shù)據(jù)開發(fā)相關(guān)的),包括我自己整理的一份最新的大數(shù)據(jù)進(jìn)階資料和高級(jí)開發(fā)教程,歡迎進(jìn)階中和進(jìn)想深入大數(shù)據(jù)的小伙伴。大數(shù)據(jù)開發(fā)、數(shù)據(jù)分析與挖掘線上教學(xué),免費(fèi)試聽!

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

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