Spark學習筆記

2021-08-20 23:20:25 字數 1030 閱讀 5869

spark不僅僅支援mapreduce,還支援sql、machine learning、graph運算等,比起hadoop應用更靈活寬泛。

spark 中的rdd 資料結構應對mapreduce中data replication、disk io、serialization引起的低效問題。

rdd (類似於tensorflow裡面的tensor pipline?)將operation分為transformation和action,只有action才能觸發真正的運算,對於transformation只進行lazy evaluation。operation會連成pipline,相當於把小步的運算從邏輯上組合成一大步運算,而省略了不必要的中間步驟以及中間資料的同步等待和傳輸等,減少了driver和cluster之間的互動,提高了效率。

rdd 執行過程 :

(1)建立rdd物件;

(2)sparkcontext負責計算rdd之間的依賴關係(窄依賴,寬依賴(shuffle)),構建directed acyclic graph;

(3)dagscheduler負責把dag圖分解成多個階段,一般窄依賴的rdd處於同一階段,在寬依賴處劃分新階段,每個階段中包含了多個任務,每個任務會被任務排程器分發給各個工作節點(worker node)上的executor去執行。

spark 學習筆記

最近使用spark簡單的處理一些實際中的場景,感覺簡單實用,就記錄下來了。部門使用者業績表 1000w測試資料 使用者 部門 業績 資料載入 val context new sparkcontext conf var data context.textfile data.txt 場景1 求每個部門的...

spark學習筆記

1 缺省會寫成一堆小檔案,需要將其重新分割槽,直接指定幾個分割槽 spark.sql select row number over partition by depid order by salary rownum from emp repartition 2 write.parquet hdfs ...

Spark學習筆記

hadoop中mapreduce計算框架是基於磁碟的,每次計算結果都會直接儲存到磁碟,下一次計算又要從磁碟中讀取,因而io消耗大,迭代計算效率很低,且模型單一,不能適應複雜需求。spark是一種基於記憶體的開源計算框架,迭代計算效率非常高。另外,mapreduce的計算是一步一步來的,而spark將...