Apache Spark 4.2 上週推出,這項版本顯示 Spark 在企業資料處理領域的角色已持續擴展超過十年。

隨著針對 AI 工作負載的新功能(包括受控指標、向量檢索原語、即時處理、Python 支援強化,以及原生地理空間分析),Spark 4.2 延續了近期在 AI 與串流功能上的發展,反映出許多工程團隊如今使用該平台的方式。此版本在 Spark 傳統資料處理引擎的角色上,新增更多支援生產級 AI 應用所需的功能

這次發布引進多項功能,讓開發人員不必離開平台就能完成更多工作;對於已在使用 Spark 的團隊而言,這可能意味著需管理的系統數量減少。

受控指標防止衝突

一個團隊對業務指標的定義不一定與另一個團隊相同。隨著時間推移,這些差異可能導致報表衝突,並產生「該相信哪個數字」的疑慮。

當 AI 應用開始使用分析師與商業智慧工具所使用的同一份企業資料時,問題會更加嚴重。如果不同團隊對同一指標有不同定義,AI 系統可能對同一問題產生不一致的結果。

Spark 4.2 引進受控指標檢視(governed metric views)來解決此問題。組織可以定義一次業務指標,並在各應用程式間重複使用該定義。指標檢視將維度與量值視為 Spark 能理解的第一級物件,因此無論是誰或什麼系統在查詢,引擎都能保留預期的聚合語意。

組織可以定義一次業務指標,並在各應用程式間重複使用該定義。

向量搜尋原生化

其中一項較重大的新增功能是原生向量搜尋,它減少了在 Spark 與獨立向量資料庫之間移動資料的需求。

Spark 4.2 引進向量距離與相似度函式、向量正規化、向量聚合,以及 NEAREST BY——一個用於 top-K 相似度搜尋的新 SQL 運算子。透過將向量搜尋帶入 Spark,開發人員可以將更多檢索管線保留在同一平台上。

透過將向量搜尋帶入 Spark,開發人員可以將更多檢索管線保留在同一平台上。

Python 互通性更簡易

Spark 4.2 讓在 Spark 與 Arrow 原生工具之間移動資料變得更容易。透過支援 Arrow C Data Interface 與 PyCapsule 協定,只要雙方都支援這些標準,Spark DataFrame 就可以直接傳遞給 Polars、DuckDB 等工具,而無需複製或序列化底層資料。

Python 也獲得其他更新。PySpark 已擴充;Arrow 最佳化的 UDF 執行現在是預設行為,而 Python Data Sources 現在內建時間與記憶體分析功能,協助開發人員針對自訂連接器進行排解。

Spark Connect 讓引擎可被代理呼叫

Spark Connect 透過基於 gRPC 與 Arrow 的協定,將用戶端與 Spark 伺服器分離,在 4.2 版中收到多項更新。其核心概念是:用戶端建立邏輯計畫,伺服器負責分析、優化與執行,最後以 Arrow 批次傳回結果。用戶端不需要完整的 Spark 執行環境或共置的 JVM。

本次更新包含 Spark Connect(此專案的用戶端-伺服器介面)的多項變更。AI 應用程式可以將處理請求傳送至遠端 Spark 叢集,而工作仍繼續在 Spark 內部執行。此版本改善了沿此路徑的 RDD API 相容性、錯誤處理與狀態回報。

串流功能強化即時 AI

Spark 4.2 在串流功能上有多項更新,包括 Auto CDC 與 Real-Time Mode。許多 AI 應用依賴持續更新的資料,而非排程批次作業。Auto CDC 將第一級變更資料擷取(change data capture)帶入 Spark Declarative Pipelines,處理合併邏輯以在來源資料變更時保持目標資料表最新——這原本需要手寫且容易出錯的程式碼。新的 CHANGES SQL 子句讓團隊能透過單一 SQL 介面取得資料變更。

Spark 4.2 也新增內建的 GEOMETRY 與 GEOGRAPHY 型別,以及用於位置感知分析的 ST_* 函式,無需額外的空間擴充功能。對於處理位置資料的團隊(物流、房地產、IoT),這消除了另一個將資料移出 Spark 的理由。

整體視野

Spark 4.2 將更多 AI 與資料堆疊帶入平台本身。原本需要依賴獨立工具的功能,現在可以在 Spark 中直接處理。

對於目前使用 Spark 進行 ETL,然後將資料交給其他系統進行檢索、治理或即時處理的團隊,此版本開始模糊這條界線。隨著更多 AI 應用直接在營運資料上執行,Spark 正逐漸成為服務層的一部分,而非僅僅為服務層準備資料。

Spark 正逐漸成為服務層的一部分,而非僅僅為服務層準備資料。

YOUTUBE.COM/THENEWSTACK

科技發展迅速,別錯過任何一集。訂閱我們的 YouTube 頻道,收看所有 podcast、訪談、示範,以及更多內容。

Group Created with Sketch.