Spark算子講解(下)

編程語言 Spark Java 技術 IT優就業 IT優就業 2017-09-12

接上

11:takeSample

Spark算子講解(下)

隨機採樣,抽取num個樣例。可以指定是否重複抽取,隨機數種子是一個生成隨機數的初始條件,可以使用系統時間戳作為種子值。

當不允許重複抽取時候,num數目大於rdd元素數目不會報錯,此時只會抽取rdd的所有元素。

12:takeOrdered

Spark算子講解(下)

抽取出num個個最小的元素,唯一和top區別就是top抽取大的,takeOrdered抽取小的。

13:take

Spark算子講解(下)

返回num個數據,一般當數據較大的時候如果collect操作會導致Driver內存溢出,所以此時可以使用take攜帶少量數據到Driver。

14:subtract

Spark算子講解(下)

返回一個在當前RDD中且不在other中的元素所生成的RDD

15:sortBy

Spark算子講解(下)

16:sample

Spark算子講解(下)

隨機採樣,是否重複採樣,抽取數據的百分比例。

17:repartition

Spark算子講解(下)

重新創建一個只有numPartitions個分區的RDD,提高分區數或降低分區數會改變並行度,內部實現實現需要shuffle。如果需要降低RDD的分區數的話儘可能使用coalesce算子,它會避免shuffle的發生。

18:coalesce

Spark算子講解(下)

降低原來RDD的分區數目到numPartitions個分區。例如由1000個分區降到100個分區的話,這樣是一個窄依賴,因此不需要shuffle過程。

但是如果RDD原本有2個分區的話,當我們調用coalesce(5)的話,生成的RDD分區還將是2,不會增加,但是如果調用coalesce(1)的話,則會生成分區個數為1的RDD。(coalesce只會減少分區數,不會增加分區數)。

拓展:如果我們的RDD分區數為1的話,我們可以傳遞shuffle=true,當計算時候會進行shuflle分佈到多個節點進行計算。

19:checkpoint

Spark算子講解(下)

Mark this RDD for checkpointing. It will be saved to a file inside the checkpoint directory set with SparkContext#setCheckpointDir and all references to its parent RDDs will be removed. This function must be called before any job has been executed on this RDD. It is strongly recommended that this RDD is persisted in memory, otherwise saving it on a file will require recomputation.

20:cartesian

Spark算子講解(下)

文章摘自博客園

中公優就業 幫你成就職業夢:

IT教育專業培訓:https://www.ujiuye.com/

IT職業在線教育:https://xue.ujiuye.com/

大數據時代下做java開發工程師:https://www.ujiuye.com/zt/java/?wt.bd=lsw44106tt

相關推薦

推薦中...