RDD操作建立RDD,轉換操作

2021-10-03 08:42:15 字數 1330 閱讀 3244

學習完廈門大學資料庫spark課程總結

rdd是面對物件的檔案集合,類似於dataframe的一行資料,

建立rdd有很多種模式

lines = sc.textfile(「file:///usr/local/spark/…檔案目錄位址」) 注意sc是sparkcontext縮寫可能需要import一下,這是從本地檔案建立rdd,file:後面是三個///

lines = sc.textfile(「hdfs://localhost:90000/usr/檔案目錄位址」)從hdfs中建立rdd,也可以不寫前面的目錄,直接寫檔名稱也行

llines = sc.parallelize(array) 通過並行陣列建立rdd,相當於把(1,2,3)變成了rdd(1)(2)(3)

rdd的操作包括了轉換操作和行動操作,rdd本身是無法修改的,每一次轉換操作都會形成新的rdd,但rdd的轉換操作是依賴惰性機制的,就是說轉換過程並不是真的轉換了,只是記錄了轉換的軌跡,等到行動操作發生時,才真的開始轉換

rdd轉換操作之filter

lineswithspark = lines.filter(lambda line: 「spark」 in line)

rdd轉換操作之map

words = lines.map(lambda line:line.split(" 「)) 用空格切分,與python一致,」screw you「 變成 array(」screw「, 」you「)

rdd轉換操作之flatmap

words = lines.flatmap(lambda line:line.split(」 ")) 直接切成乙個乙個的,變成(」screw「)(」you「)

rdd轉換操作之groupbykey

groupbykey只能對鍵值對操作,把words = [(」spark「,1),(『spark」,1)]變成(「spark」,(1,1))

rdd轉換操作之reducebykey

wordscount = words.reducebykey(lambda:a ,b:a+b) 只能對鍵值對操作,把words = [(」spark「,1),(『spark」,1)]變成(「spark」,2)

rdd行動操作

rdd = sc.parallelize([1,2,3])

rdd.count() 結果3

rdd.first()結果1

rdd.take(2)結果 [1,2]

rdd.reduce(lambda:a,b:a+b) 結果6

rdd.collect()結果[1,2,3] 以陣列形式返回

rdd.foreach(lambda elem:print(elem))python3以前版本不支援foreach

RDD行動操作

行動操作是第二種型別的rdd操作,它們會把最終求得的結果返回到驅動器程式中,或者寫入外部儲存系統中。常見的rdd行動操作 1.reduce 它接收乙個函式作為引數,這個函式要操作兩個相同的元素型別的rdd資料並返回乙個同樣型別的新元素。乙個簡單的例子就是函式 可以用它來對我們的rdd進行累加。使用r...

作業四 1 RDD建立 2 RDD操作

從本地檔案系統中載入資料建立rdd 圖1.1 檢視文字資訊 圖1.2 本地檔案載入資料 從hdfs載入資料建立rdd 啟動hdfs start all.sh 檢視hdfs檔案 hdfs dfs ls 檢視的檔案目錄 圖2.1 啟動hdfs 上傳檔案到hdfs hdfs dfs put 本地檔案路徑 ...

作業四 1 RDD建立 2 RDD操作

一.rdd操作 1.從本地檔案系統中載入資料建立rdd lines sc.textfile file 檔案路徑 foreach print 2.從hdfs載入資料建立rdd 啟動hdfs start all.sh 檢視hdfs檔案 hdfs dfs ls 檢視的檔案目錄 上傳檔案到hdfs hdfs...