rdd建立:
從從檔案系統中載入資料建立rdd:
1.spark採用textfile()從檔案系統中載入資料建立rdd 可以使本地,分布式系統等
2.把檔案的url作為引數 可以是本地檔案系統的位址,分布式檔案系統hdfs的位址等等
從本地檔案中載入資料:
sc為系統自動建立的sparkcontext,不用我們建立
從檔案word.txt中載入資料生成rdd
從分布式檔案系統hdfs載入資料:
與上面同理,改變路徑,注意埠號不一樣
這三個是等價的,因為它會預設在使用者登入的hdfs下尋找檔案
rdd操作:
轉換操作:
1.對於rdd來說每次轉換都會生成不同的rdd,供乙個操作使用
2.轉換操作得到的rdd是惰性求值的,整個轉換過程只是記錄了轉換的軌跡,並不會真正發生計算,只有遇到行動操作時才會發生計算。
常見的轉換操作:
filter(func):篩選出滿足函式func的元素,並返回乙個新的資料集
map(func):將每個元素傳遞到函式func中,並將結果返回一新的資料集
flatmap(func):與map()相似,但是每個輸入的元素都可以對映到0或多個輸出結果
groupbykey():應用於(k,v)鍵值對的資料集時,返回乙個新的(k,iterable)形式的資料集
reducebykey(func):應用於(k,v)鍵值對的資料集時,返回乙個新的(k,v)形式的資料集,其中每個值是將每個key傳遞到函式func中聚合
行動操作:
行動操作是真正觸發計算的地方。spark程式執行到行動操作時,才會執行真正的計算,從檔案中載入資料,完成一次又一次轉換操作,最終,計算得到結果。
count()返回集合中元素個數
collect()以陣列的形式返回資料集中所有元素
first()返回資料集中的第乙個元素
take(n)以陣列的形式返回資料集中的前n個元素
reduce(func)通過函式func(輸入兩個引數並返回乙個值)聚合資料集中的元素
foreach(func)將資料集中的每個元素傳遞到函式func中執行
惰性機制:
第三行**的reduce()方法是乙個「行動(action)」型別的操作,這時,就會觸發真正的計算
這時,spark會把計算分解成多個任務在不同的機器上執行,每台機器執行屬於它自己的map和reduce,最後把結果返回給driver
Spark學習 RDD程式設計基礎
spark上開發的應用程式都是由乙個driver programe構成,這個所謂的驅動程式在spark集群通過跑main函式來執行各種並行操作。集群上的所有節點進行平行計算需要共同訪問乙個分割槽元素的集合,這就是rdd rdd resilient distributed dataset 彈性分布式資...
Spark學習之RDD程式設計(一)
rdd是spark的核心概念,它是乙個可讀的 可分割槽的分布式資料集,這個資料集的全部或部分可以快取在記憶體中,可在多次計算間重用。spark用scala語言實現了rdd的api,我們可以通過呼叫api實現對rdd的各種操作,從而實現各種複雜的應用。spark採用textfile 方法從檔案系統中載...
Spark程式設計模型 RDD
spark程式設計模型是彈性分布式資料集 resilient distributed dataset,rdd 是mapreduce模型的擴充套件和延伸 基於rdd機制實現了多類模型計算,如 1.迭代計算 2.互動式sql查詢 3.mapreduce rdd 4.流式資料處理。markdown 是一種...