spark基本概念(便於自己隨時查閱–摘自Spark快速大資料分析)

董可倫發表於2018-05-08
版權宣告:本文由董可倫首發於https://dongkelun.com,非商業轉載請註明作者及原創出處。商業轉載請聯絡作者本人。 https://blog.csdn.net/dkl12/article/details/80245998

我的原創地址:https://dongkelun.com/2018/01/23/sparkBasicConcept/

1、 RDD

  在Spark 中,我們通過對分散式資料集的操作來表達我們的計算意圖,這些計算會自動地在叢集上並行進行。這樣的資料集被稱為彈性分散式資料集(resilient distributed dataset),簡稱RDD。RDD 是Spark 對分散式資料和計算的基本抽象。
  RDD 支援兩種操作:轉化操作和行動操作。RDD 的轉化操作是返回一個新的RDD 的操作,比如map() 和filter(),而行動操作則是向驅動器程式返回結果或把結果寫入外部系統的操作,會觸發實際的計算,比如count() 和first()。Spark 對待轉化操作和行動操作的方式很不一樣,因此理解你正在進行的操作的型別是很重要的。如果對於一個特定的函式是屬於轉化操作還是行動操作感到困惑,你可以看看它的返回值型別:轉化操作返回的是RDD,而行動操作返回的是其他的資料型別。

2、 惰性求值

  Spark 使用惰性求值,這樣就可以把一些操作合併到一起來減少計算資料的步驟。在類似Hadoop MapReduce 的系統中,開發者常常花費大量時間考慮如何把操作組合到一起,以減少MapReduce 的週期數。而在Spark 中,寫出一個非常複雜的對映並不見得能比使用很多簡單的連續操作獲得好很多的效能。因此,使用者可以用更小的操作來組織他們的程式,這樣也使這些操作更容易管理。


相關文章