iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
AI & Data

30天胡搞瞎搞學會pyspark系列 第 19

[ Day 19 ] - Pyspark | 寫在18天之後 - 底層概念篇 - 惰性執行

  • 分享至 

  • xImage
  •  

過了18天,啤酒都做好了,啊不是,經過了前18天的實作之後,相信大家都開始對pyspark有點熟悉了吧
今天要來說一些Pyspark基礎架構,為什麼會過了18天的練習與實作之後才開始來介紹Pyspark的基礎架構呢?

相信大家在學習很多東西的時候,總會希望大家按部就班地了解概念在開始實作,但程式其實不太一樣,我認為要邊做邊學才能夠達到比較高的效益
所以就選在應該已經開始需要瞭借架構及概念的今天,來跟大家聊聊Pyspark的概念大魔王吧

相信大家在前幾天的操作時有發現,Pyspark的運算方式與其他的程式語言不太一樣
一般而言都是一行執行跳下一行,每一次執行時都能有效地將你現在執行的內容所顯示出來
Pyspark則是走一個惰性執行的路線,那麼,惰性執行是什麼呢?

惰性執行

來舉個比較生活化的例子相信大家都會了解何謂惰性執行了

情境:中秋節烤肉趴當天
老媽:欸女兒啊去超市幫我買個香菇,今天烤肉要用
我:喔好等等去買(實際上還在寫IT鐵人30天挑戰)[記住要去買香菇這件事情]=Transform
過了幾分鐘後...
老媽:欸欸好像沒有肉了去買個肉回來
我:喔好我知道了(因為鐵人寫不出來所以還在努力奮戰)[記住要去買肉這件事情]=Transform
又過了幾分鐘之後...
老媽:家裡好像沒有烤肉醬了,去買烤肉醬回來
我:一樣坐在電腦桌前面快抓禿自己的腦袋[記住要去買烤肉將這件事情]=Transform
老媽:(大發雷霆)啊東西是回來了沒啊?[trigger 執行的重要步驟,也稱為Action]
我:(被吼了只好快快出門買完三樣東西回來)[實際上到這個步驟才將前面記住東西一次買回來]

這樣的好處是什麼呢?

原本我可能要前往超市三趟,但由於我都沒有真正執行,只是先記住而已,我以實際上最終我只去了一趟超市

所以惰性執行是什麼呢?

惰性執行是一種RDD的特性,他可以分為Transform跟Action,在Transform的時候,所有步驟都不會真正被執行,他只會記錄步驟與關係,直到被Action Trigger,在此之前的所有步驟才會一一被觸發並計算,這就是惰性執行
(在被媽媽吼之前都只是記住要幹嘛都不會真的去做,直到媽媽暴走,你才會出門買東西)
(大概是因為你知道這樣只要去一趟超市,而且最省時間XD)

所以惰性執行帶來的好處也就是

  1. 如果你將每個步驟都assign 給同一個人那他只要做一次就好了
    也就是說,在使用pyspark時,會推薦你都使用同一個dataframe 去做運算
  2. 提高效率也節省資源

哪些是Action / Transorm 呢?

如果有任何不理解、錯誤或其他方法想分享的話,歡迎留言給我!喜歡的話,也歡迎按讚訂閱!

我是 Vivi,一位在雲端掙扎的資料工程師!我們下一篇文章見!Bye Bye~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】


上一篇
[ Day 18 ] - Pyspark | 資料集合- broadcast v.s join
下一篇
[ Day 20 ] - Pyspark | 寫在18天之後 - 底層概念篇 - DAG
系列文
30天胡搞瞎搞學會pyspark30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言