Apache Spark 4.1 深掘り — 宣言型パイプライン・リアルタイムモード・PySpark強化の全貌
この記事はClaudeが自動収集・まとめた学習ログです。
概要
Apache Spark 4.1.0 は2025年12月16日にリリースされ、2026年1月には安定版の 4.1.1 が公開された。さらに2026年3月には 4.2.0 のプレビュー版も登場し、Spark エコシステムの進化が加速している。
Spark 4.1 の最大の特徴は「宣言型」への大きな一歩だ。ETL パイプラインの定義方法、ストリーミング処理のレイテンシ、PySpark の実行効率という三つの軸で実務的な改善が加えられており、データエンジニアリングの現場に直接影響するリリースとなっている。
主要トピック
Spark Declarative Pipelines(SDP)
Spark 4.1 の目玉機能として、Spark Declarative Pipelines(SDP) が新たに追加された。SDP では、開発者は「何を作りたいか(データセットとクエリ)」だけを宣言すれば良く、実行グラフの構築・依存関係の解決・並列化・チェックポイント・リトライは Spark が自動的に管理する。
SDP が扱う主なオブジェクトは以下の二種類である。
- Streaming Table — ストリーミングクエリによって継続的に管理されるテーブル
- Materialized View — 特定クエリの結果として定義されるテーブル(バッチ的更新)
従来の命令的なコードでは、パイプラインのステップを順序どおりに書き、依存関係を手動で管理する必要があった。SDP はこの煩雑さを排除し、ETL 開発を「変換のロジックを書く作業」に集中させる。公式ドキュメントには独立したプログラミングガイドが提供されている。
Structured Streaming の Real-Time Mode(RTM)
Spark 4.1 では、Structured Streaming において Real-Time Mode(RTM) が正式にサポートされた。RTM はエンドツーエンドのレイテンシを大幅に削減することを目的としており、ステートレスなワークロードでは p99 レイテンシが一桁ミリ秒 を達成できるとされている。
重要な点は、既存の Structured Streaming クエリをコード変更なしに RTM で実行できることだ。移行コストをほとんどかけずにレイテンシを改善できるため、リアルタイム要件の厳しい用途にとって実用的な選択肢となっている。
PySpark の Arrow ネイティブ UDF
PySpark においては、Arrow ネイティブ UDF・UDTF デコレータ が追加された。従来の Pandas UDF では PyArrow ↔ Pandas の変換オーバーヘッドが発生していたが、新しいデコレータを使うことで PyArrow 形式のまま処理を完結させられる。大量データを扱う UDF でのパフォーマンス向上が期待される。
加えて、Python Data Source のフィルタプッシュダウン もサポートされた。カスタム Python データソースを使用する際に、フィルタ条件をデータ取得側に押し込むことでデータ転送量を削減できる。
SQL 機能の強化
SQL 面では以下の機能が追加・GA となった。
- SQL Scripting の GA — 4.0 で導入されたSQL スクリプティングが正式版となり、デフォルト有効化。エラーハンドリングの改善も含む
- VARIANT 型の GA — 半構造化データをネイティブに扱える VARIANT 型が正式版に。シュレッディングにより読み取り高速化
- 再帰 CTE のサポート — 階層データの問い合わせが SQL 標準の再帰 CTE で記述可能に
- 近似スケッチ関数 — KLL スケッチ(分位数推定)と Theta スケッチ(カーディナリティ推定)が追加
大規模ワークロード向けの安定性改善
大規模処理での安定性向上として、以下の改善が加えられた。
- zstd 圧縮 Protobuf プラン — 論理プランのシリアライズに zstd 圧縮を適用し、大規模クエリでのオーバーヘッドを削減
- チャンク化 Arrow 結果ストリーミング — Arrow 形式の結果を分割送信することで、巨大なローカルリレーションへの対応を強化
Spark 4.2 プレビューの動向
2026年3月には Spark 4.2.0 のプレビュー版が公開された(2026年2月8日が preview2 のリリース日とされている)。正式版ではないため API・機能は変更の可能性があるが、コミュニティが早期フィードバックを提供できる段階にある。
まとめ
Apache Spark 4.1 は、ETL をより宣言的に記述できる SDP、低レイテンシ処理を実現する RTM、Python 開発の効率を高める Arrow ネイティブ UDF と、実務上の課題に直結する機能強化が揃ったリリースだ。既存の Structured Streaming クエリを変更なしに RTM へ移行できる後方互換性の配慮も評価できる。
Spark 4.2 のプレビューも始まっており、引き続き動向を追っていきたい。