天天看點

spark基本概念(便于自己随時查閱--摘自Spark快速大資料分析)

版權聲明:本文由董可倫首發于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 中,寫出一個非常複雜的映射并不見得能比使用很多簡單的連續操作獲得好很多的性能。是以,使用者可以用更小的操作來組織他們的程式,這樣也使這些操作更容易管理。

繼續閱讀