日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 服務器 > spark之RDD

spark之RDD

來源:程序員人生   發布時間:2016-06-25 08:18:24 閱讀次數:3255次
1、Spark中的RDD就是1個不可變的散布式對象集合。每一個RDD都被分為多個分區,這些分區運行在集群的不同節點上。創建RDD的方法有兩種:1種是讀取1個外部數據集;1種是在群東程序里分發驅動器程序中的對象集合,不如剛才的示例,讀取文本文件作為1個字符串的RDD的示例。
2、創建出來后,RDD支持兩種類型的操作:轉化操作和行動操作
轉化操作會由1個RDD生成1個新的RDD。(比如剛才的根據謂詞挑選)
行動操作會對RDD計算出1個結果,并把結果返回到驅動器程序中,或把結果存儲到外部存儲系統(比如HDFS)中。比如first操作就是1個行動操作,會返回RDD的第1個元素。
注:轉化操作與行動操作的區分在于Spark計算RDD的方式不同。雖然你可以在任什么時候候定義1個新的RDD,但Spark只會惰性計算這些RDD。它們只有第1個在1個行動操作中用到時,才會真實的計算。之所以這樣設計,是由于比如剛才調用sc.textFile(...)時就把文件中的所有行都讀取并存儲起來,就會消耗很多存儲空間,而我們馬上又要挑選掉其中的很多數據。
這里還需要注意的1點是,spark會在你每次對它們進行行動操作時重新計算。如果想在多個行動操作中重用同1個RDD,那末可使用RDD.persist或RDD.collect讓Spark把這個RDD緩存下來。(可以是內存,也能夠是磁盤)

3、Spark會使用譜系圖來記錄這些不同RDD之間的依賴關系,Spark需要用這些信息來按需計算每一個RDD,也能夠依托譜系圖在持久化的RDD丟失部份數據時用來恢復所丟失的數據。(以下圖,過濾errorsRDD與warningsRDD,終究調用union函數)



窄依賴 (narrowdependencies) 和寬依賴 (widedependencies) 。窄依賴是指 父 RDD 的每一個分區都只被子 RDD 的1個分區所使用 。相應的,那末寬依賴就是指父 RDD 的分區被多個子 RDD 的分區所依賴。例如, map 就是1種窄依賴,而 join 則會致使寬依賴
這類劃分有兩個用途。首先,窄依賴支持在1個結點上管道化履行。例如基于1對1的關系,可以在 filter 以后履行 map 。其次,窄依賴支持更高效的故障還原。由于對窄依賴,只有丟失的父 RDD 的分區需要重新計算。而對寬依賴,1個結點的故障可能致使來自所有父 RDD 的分區丟失,因此就需要完全重新履行。因此對寬依賴,Spark 會在持有各個父分區的結點上,將中間數據持久化來簡化故障還原,就像 MapReduce 會持久化 map 的輸出1樣。


RDD工作原理:
RDD(Resilient DistributedDatasets)[1] ,彈性散布式數據集,是散布式內存的1個抽象概念,RDD提供了1種高度受限的同享內存模型,即RDD是只讀的記錄分區的集合,只能通過在其他RDD履行肯定的轉換操作(如map、join和group by)而創建,但是這些限制使得實現容錯的開消很低。對開發者而言,RDD可以看做是Spark的1個對象,它本身運行于內存中,如讀文件是1個RDD,對文件計算是1個RDD,結果集也是1個RDD,不同的分片、數據之間的依賴、key-value類型的map數據都可以看作RDD。
主要分為3部份:創建RDD對象,DAG調度器創建履行計劃,Task調度器分配任務并調度Worker開始運行。
SparkContext(RDD相干操作)→通過(提交作業)→(遍歷RDD拆分stage→生成作業)DAGScheduler→通過(提交任務集)→任務調度管理(TaskScheduler)→通過(依照資源獲得任務)→任務調度管理(TaskSetManager)
Transformation返回值還是1個RDD。它使用了鏈式調用的設計模式,對1個RDD進行計算后,變換成另外1個RDD,然后這個RDD又可以進行另外1次轉換。這個進程是散布式的。
Action返回值不是1個RDD。它要末是1個Scala的普通集合,要末是1個值,要末是空,終究或返回到Driver程序,或把RDD寫入到文件系統中
轉換(Transformations)(如:map, filter, groupBy, join等),Transformations操作是Lazy的,也就是說從1個RDD轉換生成另外一個RDD的操作不是馬上履行,Spark在遇到Transformations操作時只會記錄需要這樣的操作,其實不會去履行,需要等到有Actions操作的時候才會真正啟動計算進程進行計算。
操作(Actions)(如:count, collect, save等),Actions操作會返回結果或把RDD數據寫到存儲系統中。Actions是觸發Spark啟動計算的動因。
它們本質區分是:Transformation返回值還是1個RDD。它使用了鏈式調用的設計模式,對1個RDD進行計算后,變換成另外1個RDD,然后這個RDD又可以進行另外1次轉換。這個進程是散布式的。Action返回值不是1個RDD。它要末是1個Scala的普通集合,要末是1個值,要末是空,終究或返回到Driver程序,或把RDD寫入到文件系統中。關于這兩個動作,在Spark開發指南中會有就進1步的詳細介紹,它們是基于Spark開發的核心。


參考:http://www.itshipin.com/article/article110.html


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美最猛黑人xxxx黑人猛叫黄 | 日本免费视频 | 最新日韩精品视频 | 日韩成人在线播放 | 精品国产乱码久久久久久闺蜜 | 国产激情视频 | 天堂在线免费视频 | 国产日韩欧美在线影视 | 日本久久久久久久 | 伊人狠狠| 亚洲精品国产成人 | 黄色免费网站视频 | 在线一区视频 | 亚洲国产视频一区 | 欧美亚洲成人网 | 叶山小百合av一区二区 | 一区二区三区回区在观看免费视频 | 欧美中文字幕一区二区三区 | 国产成人精品免高潮在线观看 | 国产一区二区三区四区 | 狠狠干网站 | 欧美日韩视频一区二区三区 | 国产一区二区不卡 | 久久精品99国产精品 | 国产成人精品久久 | 成人福利午夜 | 中文字幕一区二区视频 | 精品国产欧美一区二区三区成人 | 成人一区视频 | 中文字幕高清在线 | 欧美一级欧美一级在线播放 | 一级免费视频 | 91av电影在线播放 | 日本综合伊人 | 91精品中文字幕一区二区三区 | 在线视频这里只有精品 | 自拍偷拍亚洲精品 | 蜜桃视频一区二区 | 特黄一级大片 | 精品久久成人 | www久久|