並行化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平台上的通...