今天來説說RDD吧
來舉個比較生活化的例子相信大家都會了解何謂RDD了
世界盃比賽開打了:
想像今天所有參賽的國家都是是一個大集合,每隊都要進行比賽[處理],但是這種短期盃賽,通常都會有時程壓力,而且不可能只有一個場地,所以這時候我們就會將各個國家分成不同的partitiony在不同的場地去進行分組比賽,
在不同的場地進行比賽,意味著可以同一個時段有多場比賽[達到平行比賽的目的]
也可以加速比賽結果的產生[意味著可以提高效率]
但是因為已經分好組了,所以我們不能修改分組[不然會不公平],我們只能透過重新抽籤分組來產生出另一個分組架構
如下圖
生活化的例子簡單的舉完之後,我們來看一下下面的定義:
RDD是一種具有容錯性與高並行性的資料結構,由一堆RDD資料元素所組成,而這一大堆的RDD元素可以被組裝成一到數個的partition(分區),這些partition可以分散在不同的機器上執行[多個場地同時進行],且大多數的情況是存在各個本地機器的Memory中。
每個partition的大小範圍可視任務需要而彈性設定。此外,這些partition在執行相關操作時,是不可改變的(immutable),即:已存在的RDD想要修改資料,只能對該RDD經過轉換產生出另一個新的RDD,不可以直接修改RDD的資料內容。
一組分區 (Set of partitions)
與Parent RDDs之間的關係列表 (List of dependencies on parent RDD)
Parent RDD的partition是經過哪一種函數計算得到這個RDD的partition (Function to compute a partition given its parent(s))
如果有任何不理解、錯誤或其他方法想分享的話,歡迎留言給我!喜歡的話,也歡迎按讚訂閱!
我是 Vivi,一位在雲端掙扎的資料工程師!我們下一篇文章見!Bye Bye~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】