[Spark]Spark

1.DataFrame和RDD最大的區(qū)別?
DataFrame和RDD的區(qū)別在于:
(1).DataFrame多了結(jié)構(gòu)信息;
(2).DataFrame除了提供比RDD更豐富的算子以外,還可以提升執(zhí)行效率,減少數(shù)據(jù)讀取以及執(zhí)行計(jì)劃的優(yōu)化,如:filter優(yōu)化、謂詞下推等。

2.寬依賴和窄依賴
寬依賴:父分區(qū)的數(shù)據(jù)被劃分到多個(gè)子分區(qū)(一分區(qū)對(duì)多分區(qū))。GroupByKey、ReduceByKey、Join。
窄依賴:父分區(qū)的數(shù)據(jù)被劃分到一個(gè)子分區(qū)(一分區(qū)對(duì)一分區(qū))。map、filter。

3.RDD可持久化
Spark的一個(gè)重要功能,就是在不同操作間,持久化(或緩存)一個(gè)數(shù)據(jù)集在內(nèi)存中。當(dāng)持久化一個(gè)RDD,每一個(gè)節(jié)點(diǎn)都將把它的計(jì)算分塊結(jié)果保存在內(nèi)存中。并在對(duì)此數(shù)據(jù)集(或者衍生出的數(shù)據(jù)集)進(jìn)行的其它動(dòng)作中重用。這將使得后續(xù)的動(dòng)作變得更加迅速。

4.RDD序列化
在SparkRDD編程中,初始化工作是在Driver端進(jìn)行的,而實(shí)際運(yùn)行程序是在Executor端進(jìn)行的,涉及到了跨進(jìn)程通信,是需要序列化的。
只有序列化之后的RDD才能使用壓縮機(jī)制。

conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");

5.Stage的Task數(shù)量由什么決定
并行度:是指指令并行執(zhí)行的最大條數(shù),在指令流水中,同時(shí)執(zhí)行多條指令稱為指令并行。
理論上:每一個(gè)stage下有多少分區(qū),就有多少task,task的數(shù)量就是我們?nèi)蝿?wù)的最大的并行度。
一般情況下,我們一個(gè)task運(yùn)行的時(shí)候,使用一個(gè)cores。
實(shí)際上:最大的并行度,取決于我們的application任務(wù)運(yùn)行時(shí)使用的executor擁有的cores的數(shù)量。

6.Spark應(yīng)用中的Driver和Executor會(huì)把計(jì)算邏輯解析成DAG。

7.Spark的master和worker通過Akka方式進(jìn)行通信。

8.RDD是什么?
RDD全稱是彈性分布式數(shù)據(jù)集。全稱本身并沒有很好地解釋RDD到底是什么,本質(zhì)上,RDD是Spark用于對(duì)分布式數(shù)據(jù)進(jìn)行抽象的數(shù)據(jù)模型。簡(jiǎn)言之,RDD是一種抽象的數(shù)據(jù)模型,這種模型用于囊括、封裝所有內(nèi)存中和磁盤中的分布式數(shù)據(jù)實(shí)體。
RDD五大核心屬性:

屬性名 成員類型 屬性含義
dependencies 變量 生成該RDD所依賴的父RDD
compute 方法 生成該RDD的計(jì)算接口
partitions 變量 該RDD的所有數(shù)據(jù)分片實(shí)體
partitioner 方法 劃分?jǐn)?shù)據(jù)分片的規(guī)則
preferredLocations 變量 數(shù)據(jù)分片的物理位置偏好

9.哪個(gè)不是本地模式的運(yùn)行條件
如果提交的job滿足以下條件,那么它將以本地模式運(yùn)行:
(1).spark.localExecution.enabled設(shè)置為true
(2).用戶程序顯示指定可以本地運(yùn)行
(3).finalStage沒有父Stage
(4).僅有一個(gè)partition

10.Spark RDD的緩存方式
RDD通過persist方法或cache方法可以將前面的計(jì)算結(jié)果緩存,但是并不是這兩個(gè)方法被調(diào)用時(shí)立即緩存,而是觸發(fā)后面的action時(shí),該RDD將會(huì)被緩存在計(jì)算節(jié)點(diǎn)的內(nèi)存中,并供后面重用。
https://blog.csdn.net/a1837634447/article/details/79113306

11.Spark累加器
Spark三大核心數(shù)據(jù)結(jié)構(gòu):
(1).RDD (2).累加器(只寫不讀) (3).廣播變量(只讀不寫)
https://blog.csdn.net/wx1528159409/article/details/87817785

?著作權(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ù)。

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

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