聯繫我們

課程簡介

模組 1:Big Data 與 Spark 基礎

  • Big Data 生態系統概覽及 Spark 在現代資料平台中的角色
  • 理解 Spark 架構:Driver、Executor、叢集管理器、延遲評估(Lazy Evaluation)、DAG 與執行規劃
  • RDD 與 DataFrame API 的差異,以及何時使用哪種方法
  • 建立與設定 SparkSession,並理解應用程式設定的基礎知識

模組 2:PySpark DataFrames

  • 從企業來源與格式讀取/寫入資料:CSV、JSON、Parquet 和 Delta
  • 操作 PySpark DataFrames:轉換、動作、欄位表達式、過濾、連結與聚合
  • 進階操作實作,如視窗函式、時間戳記處理及嵌套資料處理
  • 應用資料品質檢查,撰寫可重用且易維護的 PySpark 程式碼

模組 3:Spark 使用者的 Kubernetes 與 Docker 基礎

  • 理解 Docker 映像檔與 Kubernetes Pod 如何對應 Spark Driver 與 Executor 流程 —— 從叢集使用者(非管理員)的概念角度解讀
  • 理解當 Spark 作業在 Kubernetes 上運行時發生的事:Pod 調度、資源請求與限制,以及 Session 設定如何映射到這些資源
  • 理解透過 Spark Session 參數可控制的內容,與平台團隊透過叢集配置控制的內容之間的差異 —— 以及為什麼這個邊界對調整設定至關重要
  • 實作練習: 在沙箱叢集中檢查運行的 Spark-on-Kubernetes 作業,並識別 Driver 與 Executor Pod

模組 4:Kubernetes 上的 Spark Session 設定 — 深度剖析

  • 理解 Executor 數量與尺寸的權衡:記憶體與核心的 trade-off,以及如何進行推理決策
  • Driver 與 Executor 的記憶體分配、記憶體開銷(Overhead),以及這些如何轉化為 Pod 資源
  • 動態資源分配:其在 Kubernetes 上的運作方式、何時能節省資源,何時不能
  • 實作練習: 在不同 Executor 與核心設定下運行同一作業,比較執行時間與資源使用量

模組 5:擴展行為與成本優化

  • 理解增加或減少節點如何改變作業行為、完成時間與資源消耗
  • 比較多個小型 Executor 與少量大型 Executor:效能與成本的權衡
  • Shuffle 行為與 Shuffle 分區調優,包括評估設定選擇對成本的影響
  • 實作練習: 將沙箱叢集從五個節點擴展至十個,觀察對作業完成時間與資源消耗的影響

模組 6:高效資料攝取與分區

  • 理解小檔案問題:為何分散在許多 1–5 MB Parquet 檔案中的來源會降低效能並導致分區扭曲
  • 重新分區(Repartitioning)與合併(Coalescing)策略
  • 在讀取與寫入時控制分區大小
  • 高效寫入 Parquet,避免在下游重現小檔案問題
  • 實作練習: 載入由許多小型 Parquet 分區組成的資料集,應用不同的重新分區策略,並比較優化前後效能

模組 7:Pandas 記憶體管理與故障診斷

  • 理解 Pandas 記憶體溢出錯誤的根本原因,並識別其症狀
  • 在 Spark 與 Pandas 之間應用記憶體高效的轉換模式
  • 避免在將大型資料集寫入 CSV 時發生記憶體激增
  • 在資源受限的環境中使用區塊處理(Chunked processing)與 dtype 優化
  • 實作練習: 重現典型的 Pandas 記憶體溢出場景,並使用區塊處理與 dtype 優化解決它

模組 8:Polars 作為補充工具

  • Polars 相對於 Pandas 的定位:效能特性、延遲評估與記憶體行為
  • 理解在現代雲端資料堆疊與遷移路線圖中(包括 AWS 環境),Polars 如何與 PySpark 和 Pandas 並存
  • 實作練習: 使用 Polars 重寫基於 Pandas 的轉換邏輯,並比較記憶體使用量與處理速度

模組 9:在 ETL 與 ML 工作負載中應用優化

  • 在真實的 ETL 管線中應用設定、分區與記憶體管理原則
  • 理解在相同叢集上運行機器學習工作負載時的特定優化考量
  • 應用實務調優工作流程,系統性地診斷成本與效能問題
  • 實作練習: 完成一個端到端的小型專案,結合資料載入、轉換與簡單的模型訓練步驟,由學員自行調整 Spark 設定

最低要求

學員應具備以下基礎:

  • 具備Python 程式設計的實務經驗,包括函式、模組及基礎物件導向概念。
  • 具備基礎至中等程度的Pandas使用經驗,熟悉表格資料處理流程。
  • 熟悉PySpark 與 Spark DataFrames基礎,包括資料讀取、轉換、動作(Actions)、連結(Joins)與聚合。
  • SQL 與資料處理概念有概略理解,包括過濾、分組與資料集連結。
  • 熟悉Docker 與 Kubernetes 基礎概念,例如容器、映像檔(Images)與 Pod。不需要具備 Kubernetes 管理員經驗。
  • 熟悉常見的資料格式,如CSV、JSON 和 Parquet

學員不需要是 Kubernetes 管理員或基礎設施專家。本課程專注於讓資料工程師、開發人員與數據科學家從應用程式與設定角度,理解並優化在 Kubernetes 上運行的 Spark 工作負載。

目標受眾

本課程專為在雲端或容器化環境中,使用 Python 和 Spark 開發、維護或優化資料處理與機器學習工作負載的專業人士設計。

特別適合以下人員:

  • 資料工程師:使用 PySpark 進行分散式資料處理及 ETL 管線開發。
  • 數據科學家:使用 Spark、Pandas 或 Polars 處理大型資料集或執行機器學習工作負載。
  • Python 開發人員:開發資料密集型應用程式,希望提升記憶體效率與處理效能。
  • 機器學習工程師:在共享的 Kubernetes 或雲端環境中管理資料準備與模型訓練工作負載。
  • 分析師工程師:處理大型資料集,尋求提升資料處理效率。
  • DevOps、平台與雲端工程師:支援 Kubernetes 上的 Spark 工作負載,需理解應用程式層級設定如何影響資源使用與效能。
  • 技術主管與解決方案架構師:參與設計或優化現代化資料處理平台。
 21 小時

人數


每位參與者的報價

客戶評論 (1)

即將到來的課程

課程分類