過了18天,啤酒都做好了,啊不是,經過了前18天的實作之後,相信大家都開始對pyspark有點熟悉了吧
今天要來說一些Pyspark基礎架構,為什麼會過了18天的練習與實作之後才開始來介紹Pyspark的基礎架構呢?
相信大家在學習很多東西的時候,總會希望大家按部就班地了解概念在開始實作,但程式其實不太一樣,我認為要邊做邊學才能夠達到比較高的效益
所以就選在應該已經開始需要瞭借架構及概念的今天,來跟大家聊聊Pyspark的概念大魔王吧
相信大家在前幾天的操作時有發現,Pyspark的運算方式與其他的程式語言不太一樣
一般而言都是一行執行跳下一行,每一次執行時都能有效地將你現在執行的內容所顯示出來
Pyspark則是走一個惰性執行的路線,那麼,惰性執行是什麼呢?
來舉個比較生活化的例子相信大家都會了解何謂惰性執行了
情境:中秋節烤肉趴當天
老媽:欸女兒啊去超市幫我買個香菇,今天烤肉要用
我:喔好等等去買(實際上還在寫IT鐵人30天挑戰)[記住要去買香菇這件事情]=Transform
過了幾分鐘後...
老媽:欸欸好像沒有肉了去買個肉回來
我:喔好我知道了(因為鐵人寫不出來所以還在努力奮戰)[記住要去買肉這件事情]=Transform
又過了幾分鐘之後...
老媽:家裡好像沒有烤肉醬了,去買烤肉醬回來
我:一樣坐在電腦桌前面快抓禿自己的腦袋[記住要去買烤肉將這件事情]=Transform
老媽:(大發雷霆)啊東西是回來了沒啊?[trigger 執行的重要步驟,也稱為Action]
我:(被吼了只好快快出門買完三樣東西回來)[實際上到這個步驟才將前面記住東西一次買回來]
原本我可能要前往超市三趟,但由於我都沒有真正執行,只是先記住而已,我以實際上最終我只去了一趟超市
惰性執行是一種RDD的特性,他可以分為Transform跟Action,在Transform的時候,所有步驟都不會真正被執行,他只會記錄步驟與關係,直到被Action Trigger,在此之前的所有步驟才會一一被觸發並計算,這就是惰性執行(在被媽媽吼之前都只是記住要幹嘛都不會真的去做,直到媽媽暴走,你才會出門買東西)(大概是因為你知道這樣只要去一趟超市,而且最省時間XD)
如果有任何不理解、錯誤或其他方法想分享的話,歡迎留言給我!喜歡的話,也歡迎按讚訂閱!
我是 Vivi,一位在雲端掙扎的資料工程師!我們下一篇文章見!Bye Bye~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】