2019-04-28 13:13:56 2859瀏覽
大數(shù)據(jù)開發(fā)技術(shù)在各大公司企業(yè)中一直備受關(guān)注,因此想要參加大數(shù)據(jù)培訓(xùn)學(xué)習(xí)大數(shù)據(jù)開發(fā)技術(shù)的人有很多,本篇文章小編就給讀者們分享一下大數(shù)據(jù)Spark中對RDD的理解。RDD(Resilient Distributed Datasets),RDD是一個(gè)彈性分布式數(shù)據(jù)集,是分布式內(nèi)存的一個(gè)抽象概念,提供了一種高度受限共享內(nèi)存模型。關(guān)于大數(shù)據(jù)Spark中對RDD的理解,現(xiàn)在分享給大家。
RDD的特性:
1、分片的數(shù)據(jù)集(list of partiton)
假設(shè)要讀取HDFS上的數(shù)據(jù),每個(gè)block塊就是一個(gè)分片(partiton),所有的分片(partiton)組合在一起就是一個(gè)集合(list) 一個(gè)RDD。
2、在分片中使用函數(shù)計(jì)算(function for computing each partiton)
現(xiàn)在假設(shè)我們有map的函數(shù),和一個(gè)RDD,這個(gè)RDD中有3個(gè)partiton,那么這個(gè)map函數(shù)會在每個(gè)partiton之上的進(jìn)行計(jì)算。
計(jì)算完畢后,又組成一個(gè)新的RDD,以迭代的方式進(jìn)行計(jì)算。
3、數(shù)據(jù)集依賴RDD
從2.在分片中使用函數(shù)計(jì)算可以看出。
首先RDD1初始化的時(shí)候是在HDFS系統(tǒng)中讀出來的數(shù)據(jù),然后通過map函數(shù)在partiton進(jìn)行計(jì)算又組成了一個(gè)新的RDD2,這樣我們可以得出結(jié)論RDD都是有依賴關(guān)系的。依賴的好處就是有容錯(cuò),假設(shè)RDD2中的partiton數(shù)據(jù)丟失了,可以重新在RDD1中計(jì)算過來。
4、KV的RDD
如果RDD中的元素是二元組類型的話,那么這個(gè)RDD就叫KV格式的RDD
5、task計(jì)算數(shù)據(jù)本地化
task理解為是一個(gè)線程,在任務(wù)調(diào)度的時(shí)候RDD會提供一個(gè)接口給我們調(diào)用,知道partiton所在的位置之后就分發(fā)task讓其執(zhí)行任務(wù)。
Driver的作用:
1、負(fù)責(zé)任務(wù)的分發(fā)(task的分發(fā))
2、將每一個(gè)task的計(jì)算結(jié)果拉回到Driver端。
spark的代碼執(zhí)行流程:
1、從文件系統(tǒng)中讀取數(shù)據(jù)(Flie System)加載到RDD。
2、使用transformations算子 對RDD的計(jì)算(不會立即執(zhí)行)。
3、觸發(fā)Action類算子執(zhí)行(立即執(zhí)行)。
關(guān)于大數(shù)據(jù)Spark中對RDD的理解,還有不明白的地方的話,大家可以點(diǎn)自學(xué)扣丁學(xué)堂咨詢老師。想要了解更多關(guān)于大數(shù)據(jù)開發(fā)方面內(nèi)容的小伙伴,請關(guān)注扣丁學(xué)堂大數(shù)據(jù)培訓(xùn)官網(wǎng)、微信等平臺,扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育有專業(yè)的大數(shù)據(jù)講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的大數(shù)據(jù)視頻教程定能讓你快速掌握大數(shù)據(jù)從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂大數(shù)據(jù)學(xué)習(xí)群:209080834。
【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】 【掃碼進(jìn)入Python全棧開發(fā)免費(fèi)公開課】
查看更多關(guān)于“大數(shù)據(jù)培訓(xùn)資訊”的相關(guān)文章>