spark程式設計模型二

2021-07-16 09:48:14 字數 1598 閱讀 8391

並行化scala集合

1、spark使用parallelize方法轉換成rdd

2、val rdd1=sc.parallelize(array(1,2,3,4,5))

3、val rdd2=sc.parallelize(list(0 to 10),5)

4、引數slice是對資料集切片,每乙個slice啟動乙個task進行處理

hadoop資料集

1、spark可以將任何hadoop所支援儲存資源轉化成rdd,如本地檔案,hdfs,cassandra,hbase等

2、spark支援text files,sequencefile和任何hadoop inputformat格式

2、1使用textfile()方法可以將本地檔案或者hdfs檔案轉換成rdd

2、2如果讀取本地檔案,各節點都要有該檔案,或者使用網路共享檔案

2、3支援整個檔案目錄讀取,如textfile(「/my/directory」)

2、4壓縮檔案讀取,如textfile(「/my/directory/*.gz」)

2、5萬用字元檔案讀取 ,如textfile(「/my/directory/*.txt」)

注:textfile()有可選擇的第二個引數slice,預設情況下,為每個block建立乙個分片,使用者也可以通過slice指定更多的分片,但不能使用少於block數的分片。

2、5使用wholetextfiles()讀取目錄裡面的小檔案,返回(檔名,內容)對

2、6使用sequencefilek,v方法可以將sequencefile轉換成rdd

2、7使用hadooprdd()方法可以將其他任何hadoop的輸入型別轉換成rdd

transformation特點

1、在乙個已有的rdd上建立乙個新的rdd

2、延遲執行(lazy)

快取特點

1、可以使用persist和cache方法將任意rdd快取到記憶體或磁碟、tachyon檔案系統中

2、快取是容錯的,如果乙個rdd分片丟失,可以通過構建它的transformation自動重構

3、被快取的rdd被使用的時候,訪問速度會加速10x

4、cache是persist的特例

5、executor中60%做cache,40%做task

廣播變數

1、廣播變數快取到各個節點的記憶體中,而不是每個task

2、廣播變數被建立後,能在集群中執行的任何函式呼叫

3、廣播變數是唯讀的,不能在被廣播後修改

4、val broadcastvar=sc.broadcasr(array(1,2,3)) 呼叫 broadcastvar.value

累加器

1、累加器只支援加法操作

2、累加器可以高效的並行,用於實現計數器和變數求和

3、spark原生支援資料型別和標準可變集合的計數器,但使用者可以新增新的型別

4、只有驅動程式才能獲取累加器的值

5、val accum=sc.accumulator(0) sc.parallelize(array(1,2,3,4).foreach(x => accum+=x)) accum.value

Spark程式設計模型 RDD

spark程式設計模型是彈性分布式資料集 resilient distributed dataset,rdd 是mapreduce模型的擴充套件和延伸 基於rdd機制實現了多類模型計算,如 1.迭代計算 2.互動式sql查詢 3.mapreduce rdd 4.流式資料處理。markdown 是一種...

Spark流式程式設計介紹 程式設計模型

spark官方文件 結構化流中的核心概念就是將活動資料流當作乙個會不斷增長的表。這是乙個新的流處理模型,但是與批處理模型很相似。你在做流式計算就像是標準針對靜態表的批查詢,spark會在乙個無限輸入的表上進行增量查詢。我們來從更多詳細內容來理解這個模型。將輸入的資料流理解為 寫入表 每個流中到達的資...

Spark(六) Spark計算模型

整個spark框架都是基於rdd運算元來進行計算的。what is rdd?resilient distributed dataset rdd 分布式彈性資料集,是spark上的乙個核心抽象 表示用於平行計算的,不可修改的,對資料集合進行分片的資料結構 簡單地,可以將rdd看成是spark平台上的通...