感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
模組 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)
我喜歡它的實用性。非常喜歡將理論知識應用到實際例子中。
Aurelia-Adriana - Allianz Services Romania
課程 - Python and Spark for Big Data (PySpark)
機器翻譯