07/21 2021

【AWS 數據戰情室】Day 20 Glue ETL Job 教學-Python Shell-Part 2

AWS Glue ETL Job 教學 - Python Shell

設定完成後可以開始撰寫所需的 ETL 程式


7. 設定完 Python Shell 後可以看到一個空白的編輯器,這裡我們可以自行撰寫所需的 ETL 程式,接下來會介紹如何使用 pandas 進行資料處理,產生出每個user 最喜歡購買的前五項商品清單。

aws Python Shell 空白編輯器

接下來會簡單介紹所使用的程式碼

aws Python Shell 程式碼
  • Import 所需要的 Library,這邊沒有 import 昨天所設定的 s3fs 是因為 s3fs 是透過 pandas 進行呼叫,所以 import 的部分會由 pandas 處理
aws Python Shell 程式碼
  • S3 抓取所需要的資料order_products__prior.csv、orders.csv、products.csv
aws Python Shell 程式碼
  • 透過 pandas 將三個資料源進行 Join,pandas 的 join 是使用 merge 這個 Function,裡面的第一與第二個參數,代表要 Join 的 Table,第三個參數 on 代表要 Join 的欄位,最後一個參數 how 代表要 Join 的方式
aws Python Shell 程式碼
  • 以 product_name 與 user_id 兩個欄位進行 Group 計算出單一 User 購買的單一商品數量
aws Python Shell 程式碼
  • 更改當前所使用的欄位名稱
aws Python Shell 程式碼
  • 針對 user_id 與 frequency_count 兩個欄位進行排序,並且 user_id 使用升冪排序,frequency_count 使用降冪排序,排序方式則是透過 ascending 這個參數決定,True 代表升冪;False 代表降冪
aws Python Shell 程式碼
  • 透過 Group 只取每個 user_id 的前五筆資料
aws Python Shell 程式碼
  • 新增一個排名欄位 sort_id,這個欄位會以 user_id 為基準進行降冪排名,升降冪排名是透過 ascending 參數進行控制,True 代表升冪;False 代表降冪
aws Python Shell 程式碼
  • 最後將完成處理的資料寫入 S3

完整程式碼

程式碼可以直接使用,但 read_csv 與 to_csv 的 S3 路徑需適當修改

aws Python Shell 程式碼

請持續鎖定 Nextlink 架構師專欄,以獲得最新專業資訊喔!

若您有任何 AWS 需求,歡迎與我們聯繫!