聯繫我們
 課程時長 21 時間:

課程簡介

模組 1:大數據與 Spark 基礎

  • 大數據生態系統概覽及 Spark 在現代資料平台中的角色
  • 理解 Spark 架構:Driver、Executors、叢集管理器、延遲評估(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 排程、資源請求與限制,以及會話設定如何映射到這些資源
  • 理解透過 Spark 會話參數可控制的內容,與平台團隊透過叢集佈署控制的內容之間的邊界——以及為何此邊界對調優至關重要
  • 動手練習: 在沙箱叢集中檢查運行的 Spark-on-Kubernetes 任務,並識別 Driver 和 Executor Pod

模組 4:Kubernetes 上的 Spark 會話設定——深入解析

  • 理解執行器數量與執行器大小的關係:記憶體與核心的權衡及其推理方法
  • Driver 和 Executor 的記憶體分配、記憶體超額(Overhead),以及這些如何轉化為 Pod 資源
  • 動態分配:其在 Kubernetes 上的行為、何時能節省資源及何時不能
  • 動手練習: 在不同執行器和核心配置下運行相同任務,並比較運行時間和資源使用情況

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

  • 理解增加或減少節點如何改變任務行為、完成時間及資源消耗
  • 比較大量小型執行器與少量大型執行器:效能與成本的權衡
  • 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 的定位:效能特性、延遲評估及記憶體行為
  • 理解 Polars 在現代雲端資料堆疊和遷移路線圖中如何與 PySpark 和 Pandas 協同工作,包括 AWS 環境
  • 動手練習: 使用 Polars 重寫以 Pandas 為主的轉換邏輯,並比較記憶體使用和處理速度

模組 9:將優化應用於 ETL 與 ML 工作負載

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

最低要求

學員應具備以下條件:

  • 具備Python 編程實務經驗,包括函式、模組及基本的物件導向概念。
  • 具備Pandas 及表格資料處理流程的基礎至中等經驗。
  • 熟悉PySpark 和 Spark DataFrames的基本概念,包括資料讀取、轉換、動作、連接及聚合。
  • 對SQL 和資料處理概念有基本理解,包括篩選、分組及資料集連接。
  • 熟悉Docker 和 Kubernetes 概念,例如容器、映像檔及 Pod。無需具備 Kubernetes 管理經驗。
  • 對常見資料格式如 CSV、JSON 和 Parquet 有基本理解。

學員不需要是 Kubernetes 管理員或基礎設施專家。課程重點在於幫助資料工程師、開發人員和資料科學家從應用程式和設定層面理解並優化運行在 Kubernetes 上的 Spark 工作負載。

目標受眾

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

特別適合以下人員:

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

客戶評論 (1)

課程分類