#spark

你的 code DataFrame API 或 Spark SQL —— 兩者等價 Logical Plan ·「要什麼」 解析出你引用的表與欄位,還沒最佳化 Catalyst 最佳化器 filter 下推 · 剪掉沒用的欄位 · 挑 join 策略 Physical Plan ·「怎麼做」 Exchange(= shuffle)、join 策略都定案 執行 切成 stage / task,丟到 executor 上跑

讀懂 Spark 執行計畫:.explain() 到底在說什麼

· tech · 約 5 分鐘 · 📚 Spark 學習筆記 #6

這個系列一路講下來,有兩句話反覆出現:「相信 Catalyst 最佳化器」、「打開 Spark UI 找瓶頸」。但我一直沒回答一個問題:你到底要怎麼看 Spark 做了什麼? 相信最佳化器不該是盲信—…

#spark#data-engineering#performance

K8s Control Plane · Scheduler 依 resource request / affinity 決定 pod 落哪個 node Node 1 on-demand 池(穩定) Node 2 spot 池 Node 3 spot 池 Airflow Scheduler Airflow Webserver Airflow Triggerer Metadata DBPersistentVolume(有狀態) Spark Driver Spark Executor Spark Executor Spark Executor Spark Executor Driver 申請的 executor 由 Scheduler 散到各 node Executor 讀取來源 / 寫回結果 Business DB叢集外的營運資料源 / 輸出 Airflow pod Spark Driver Spark Executor Metadata DB Business DB

Airflow + Spark 跑在 K8s 上:不同的 node 怎麼跑不同的 pod

· tech · 約 11 分鐘 · 📚 Kubernetes 學習筆記 #8

Airflow 負責「什麼時候、用什麼順序」跑作業,Spark 負責「把大資料算完」。當這兩個東西都搬到 Kubernetes 上,最常見的困惑是:到底有哪些東西在跑、它們各自是不是一個 pod、又被…

#kubernetes#airflow#spark#data-engineering

無界輸入表 t1 一批 t2 一批 t3 新到 …持續 append 表一直長高 同一個查詢groupBy/agg… 結果表(持續更新) aggregate result

Structured Streaming 入門:把串流當成一張無界的表

· tech · 約 6 分鐘 · 📚 Spark 學習筆記 #5

前四篇都在講批次的 Spark —— 是什麼、DataFrame 實戰、shuffle 調校、怎麼跑起來。但資料不會等你湊成一批才來:訂單、點擊、日誌是持續流進來的。這篇講 Spark 處理串流的方式…

#spark#data-engineering#stream-processing

Driver 排程 task ① 申請資源 Cluster Manager ② 啟動 Executor task + cache Executor task + cache Executor task + cache ③ 派 task

把 Spark 跑起來:從本機到叢集與 managed 平台

· tech · 約 6 分鐘 · 📚 Spark 學習筆記 #4

前三篇都在講 Spark 怎麼寫、怎麼跑得快(是什麼、DataFrame 實戰、shuffle 調校)。但同一段程式碼,在你筆電上跑、跟在一個幾十台機器的叢集上跑,中間到底發生什麼事?這篇講 runt…

#spark#data-engineering#deployment

narrow filter/select 分區1 分區2 分區3 分區1 分區2 分區3 1對1,不搬 wide groupBy/join 分區1 分區2 分區3 shuffle:跨分區重新分配 輸出1 輸出2 輸出3

Spark DataFrame 實戰:讀取、轉換、寫出與 Spark SQL

· tech · 約 4 分鐘 · 📚 Spark 學習筆記 #2

上一篇把 Spark 的概念講完了:Driver / Executor、分區、惰性求值、shuffle。這篇動手用 DataFrame 實際轉一份資料 —— 讀進來、清洗、彙總、寫出去,並看看 Spa…

#spark#data-engineering#pyspark

Driver SparkSession · DAG Cluster Manager YARN / K8s Executor tasks + 分區 Executor tasks + 分區 Executor tasks + 分區 申請資源

Apache Spark 是什麼?一篇搞懂分散式資料處理

· tech · 約 5 分鐘 · 📚 Spark 學習筆記 #1

一句話:Apache Spark 是一個把「大到單台機器裝不下、算不完」的資料,切成很多份、分散到一整個叢集上平行運算的引擎。它源自 UC Berkeley(2009),2014 成為 Apache …

#spark#data-engineering#pyspark