學習完廈門大學資料庫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...