Spark Release 3.5.2

Spark 3.5.2 は、セキュリティおよび修正のバグ修正を含む 2 回目のメンテナンスリリースです。このリリースは Spark の branch-3.5 maintenance branch に基づいています。すべての 3.5 ユーザーに、この安定版リリースへのアップグレードを強く推奨します。

主な変更点

  • [SPARK-45988]: Python 3.11 での pyspark.pandas.tests.computation.test_apply_func を修正
  • [SPARK-45989]: Python 3.11 での pyspark.pandas.tests.connect.computation.test_parity_apply_func を修正
  • [SPARK-46411]: テストに bcprov/bcpkix-jdk18on を使用するように変更
  • [SPARK-47368]: ParquetRowConverter で inferTimestampNTZ 設定チェックを削除
  • [SPARK-47370]: マイグレーションドキュメントを追加: Parquet ファイルでの TimestampNTZ 型推論
  • [SPARK-47435]: SPARK-45561 により MySQL の unsigned tinyint がオーバーフロー
  • [SPARK-47440]: SQLServer はバイナリ比較で LIKE 演算子をサポートしない
  • [SPARK-47473]: PostgreSQL INFINITIES タイムスタンプ変換の正確性の問題
  • [SPARK-47494]: Spark 3.3 以降の Parquet タイムスタンプ推論の動作変更に関するマイグレーションドキュメントを追加
  • [SPARK-47537]: MySQL DB に MariaDB Connector/J ではなく MySQL Connector/J を使用
  • [SPARK-47666]: MySQL のビット配列を LongType として読み取る際に NPE を修正
  • [SPARK-47770]: GenerateMIMAIgnore.isPackagePrivateModule を失敗する代わりに false を返すように修正
  • [SPARK-47774]: MimaExcludes から冗長なルールを削除
  • [SPARK-47847]: spark.network.remoteReadNioBufferConversion を非推奨化
  • [SPARK-48016]: decimals を使用した try_divide 関数のバグを修正
  • [SPARK-48068]: mypy--python-executable パラメータが必要
  • [SPARK-48083]: 3.5 クライアントと 4.0 サーバー間での session.copyFromLocalToFs の失敗
  • [SPARK-48084]: 3.5 クライアントと 4.0 サーバー間での pyspark.ml.connect.evaluation が機能しない
  • [SPARK-48086]: クライアントとサーバーの Arrow バージョンの違い
  • [SPARK-48087]: 3.5 クライアントと 4.0 サーバー間での Python UDTF の非互換性
  • [SPARK-48088]: クライアント 3.5 とサーバー 4.0 で失敗するテストをスキップ
  • [SPARK-48089]: 3.5 クライアントと 4.0 サーバー間での Streaming query listener が機能しない
  • [SPARK-48090]: 3.5 クライアントと 4.0 サーバー間での Streaming exception catch の失敗
  • [SPARK-48109]: k8s-integration-testskubernetes モジュール変更時のみ有効化
  • [SPARK-48116]: pyspark-pandas* を PR ビルダーとデイリー Python CI でのみ実行
  • [SPARK-48132]: k8s-integration-tests を PR ビルダーとデイリー CI でのみ実行
  • [SPARK-48133]: sparkr を PR ビルダーとデイリー CI でのみ実行
  • [SPARK-48138]: フラックシーな SparkSessionE2ESuite.interrupt tag テストを無効化
  • [SPARK-48167]: SPARK-46122 による既知の動作変更をスキップ
  • [SPARK-48178]: branch-3.5 の build/scala-213/java-11-17 ジョブを必要に応じてのみ実行
  • [SPARK-48192]: フォークされたリポジトリで TPC-DS と docker テストを有効化
  • [SPARK-48930]: awsAccessKeyIdaccesskey パターンを含めることでレッドアクト
  • [SPARK-49054]: カラムのデフォルト値は current_* 関数をサポートすべき
  • [SPARK-47305]: PruneFilters が、Filter の子を LocalRelation で置き換える際に isStreaming フラグを誤ってタグ付け
  • [SPARK-47307]: Spark 3.3 が無効な base64 を生成
  • [SPARK-47318]: AuthEngine の鍵交換に KDF ラウンドが追加で必要
  • [SPARK-47385]: Tuple encoder が Option 入力で間違った結果を生成
  • [SPARK-47398]: AQE は InMemoryTableScanExec の拡張を許可しない
  • [SPARK-47434]: Streaming Statistics リンクのリダイレクトが 302 エラーを発生
  • [SPARK-47455]: SparkBuild.scala で scalaStyleOnCompileConfig のリソース処理を修正
  • [SPARK-47463]: Iceberg データソースの if 式のプッシュダウン中にエラーが発生
  • [SPARK-47503]: Spark history server が、引用符で囲まれた JDBC リレーションの名前のクエリを表示できない
  • [SPARK-47507]: ORC を 1.9.3 にアップグレード
  • [SPARK-47521]: 外部ストレージからシャッフルデータを読み取る際に Utils.tryWithResource を使用
  • [SPARK-47561]: Alias に関するアナライザーのルールの順序問題を修正
  • [SPARK-47633]: JOIN LATERAL を結合条件で使用するクエリでキャッシュミスが発生
  • [SPARK-47636]: K8s Dockerfile で 17-jre ではなく Java 17 を使用
  • [SPARK-47646]: try_to_number が不正な入力で NPE を発生
  • [SPARK-47676]: 削除された VersionsSuite 参照をクリーンアップ
  • [SPARK-47762]: setup.py に pyspark.sql.connect.protobuf を追加
  • [SPARK-47824]: pyspark.pandas.series.asof の非決定性
  • [SPARK-47828]: DataFrameWriterV2.overwrite が無効なプランで失敗
  • [SPARK-47840]: Streaming Aggregate/Join ノードをまたぐ foldable propagation を削除
  • [SPARK-47895]: group by all は冪等的であるべき
  • [SPARK-47904]: enableStableIdentifiersForUnionType を使用した際の Avro スキーマでの大文字小文字の区別を維持
  • [SPARK-47910]: zstd 圧縮を使用したシャッフル書き込みの中断時のメモリリーク
  • [SPARK-47921]: ExecuteHolder での ExecuteJobTag 作成を修正
  • [SPARK-47927]: UDF における結合後の null 許容性が尊重されない
  • [SPARK-48019]: ディクショナリと null を持つ ColumnVectors が正しく読み取られない/コピーされない
  • [SPARK-48037]: SortShuffleWriter にシャッフル書き込み関連のメトリクスが不足しており、データが不正確になる可能性
  • [SPARK-48105]: HDFS ステートストアでのステートストアのアンロードとスナップショットが同時に発生した場合のデータ破損問題を修正
  • [SPARK-48128]: boolean 入力に対する BitwiseCount / bit_count 生成コードのコンパイル失敗
  • [SPARK-48172]: JDBCDialects のエスケープ問題を修正
  • [SPARK-48173]: CheckAnalsis がクエリプラン全体を見るべき
  • [SPARK-48179]: nbsphinx0.9.3 にピン留め
  • [SPARK-48184]: クライアント側で dataframe.sample のシードを常に設定
  • [SPARK-48197]: 無効な lambda 関数のアサートエラーを回避
  • [SPARK-48237]: test-dependencies.sh 実行後、ディレクトリ dev/pr-deps は削除されるべき
  • [SPARK-48241]: char/varchar 型カラムの CSV 解析失敗
  • [SPARK-48248]: inferArrayTypeFromFirstElement のレガシー設定を尊重してネストされた配列を修正
  • [SPARK-48265]: Infer window group limit batch は定数畳み込みを行うべき
  • [SPARK-48273]: PlanWithUnresolvedIdentifier の後方リライト
  • [SPARK-48286]: structField から v2 カラムへの変換で 'exists' デフォルト式を 'current' デフォルト式ではなく解析
  • [SPARK-48294]: nestedTypeMissingElementTypeError を大文字小文字を区別しないようにする
  • [SPARK-48297]: Char/Varchar が TRANSFORM 句で壊れる
  • [SPARK-48237]: test-dependencies.sh 実行後、ディレクトリ dev/pr-deps は削除されるべき
  • [SPARK-48241]: char/varchar 型カラムの CSV 解析失敗
  • [SPARK-48248]: inferArrayTypeFromFirstElement のレガシー設定を尊重してネストされた配列を修正
  • [SPARK-48265]: Infer window group limit batch は定数畳み込みを行うべき
  • [SPARK-48273]: PlanWithUnresolvedIdentifier の後方リライト
  • [SPARK-48286]: structField から v2 カラムへの変換で 'exists' デフォルト式を 'current' デフォルト式ではなく解析
  • [SPARK-48294]: nestedTypeMissingElementTypeError を大文字小文字を区別しないようにする
  • [SPARK-48297]: Char/Varchar が TRANSFORM 句で壊れる
  • [SPARK-48308]: FileSourceStrategy でパーティションカラムなしのデータスキーマ取得を統一
  • [SPARK-48428]: ネストされたカラムのエイリアシングによる IllegalStateException
  • [SPARK-48481]: OptimizeOneRowPlan はストリーミング DataFrame に対して有効であるべきではない
  • [SPARK-48484]: V2Write は異なるタスク試行に対して同じ TaskAttemptId を使用
  • [SPARK-48498]: 述語で常に char パディングを実行
  • [SPARK-48608]: Spark 3.5: value defaultValueNotConstantError is not a member of object org.apache.spark.sql.errors.QueryCompilationErrors でビルド失敗
  • [SPARK-48642]: スピリング中のタスクキルによって SparkOutOfMemoryError が誤って報告される
  • [SPARK-48666]: Unevaluable 式を含む場合、フィルタはプッシュダウンされるべきではない
  • [SPARK-48709]: DataSourceV2 CTAS の Varchar 解像度の不一致
  • [SPARK-48719]: タプルが NULL を持つ際の regr_slope & regr_intercept 集計で誤った結果
  • [SPARK-48791]: CopyOnWriteArrayList を使用したアキュムレータ登録オーバーヘッドによるパフォーマンス低下
  • [SPARK-48843]: GlobalLimit/BindParameters での無限ループ
  • [SPARK-48845]: GenericUDF は子UDFからの例外をキャッチできない
  • [SPARK-48863]: "spark.sql.json.enablePartialResults" が有効な場合、JSON 解析時に ClassCastException: class org.apache.spark.unsafe.types.UTF8String cannot be cast to class org.apache.spark.sql.catalyst.util.ArrayData
  • [SPARK-48871]: CheckAnalysis での INVALID_NON_DETERMINISTIC_EXPRESSIONS 検証を修正
  • [SPARK-48921]: サブクエリ内の ScalaUDF はアナライザーを通過すべき
  • [SPARK-48991]: FileStreamSink.hasMetadata が無効なパスを処理
  • [SPARK-49000]: DISTINCT を使用した集計がリテラルを扱う際に誤った結果を生成
  • [SPARK-49005]: Python 3.12 を防ぐために 17 ではなく 17-jammy を使用
  • [SPARK-49065]: レガシーフォーマッター/パーサーでのリベースは、JVM デフォルト以外のタイムゾーンをサポートする必要がある
  • [SPARK-49094]: ignoreCorruptFiles ファイルソースオプションは orc フォーマットで部分的にサポートされている
  • [SPARK-49099]: CatalogManager.setCurrentNamespace をリファクタリング
  • [SPARK-45587]: GitHub Action ジョブのビルドで UNIDOC と MIMA をスキップ
  • [SPARK-45593]: master コードから実行可能なディストリビューションをビルドして spark-sql を実行すると、"java.lang.ClassNotFoundException: org.sparkproject.guava.util.concurrent.internal.InternalFutureFailureAccess" エラーが発生
  • [SPARK-47172]: トランスポートブロック暗号モードを GCM にアップグレード
  • [SPARK-47299]: PySpark ドキュメントの異なるバージョンのドロップダウンで同じ versions.json を使用
  • [SPARK-47734]: ストリーミングクエリを停止して、flaky な pyspark.sql.dataframe.DataFrame.writeStream doctest を修正
  • [SPARK-47825]: KinesisTestUtilsWriteInputFormatTestDataGenerator を非推奨化
  • [SPARK-47897]: scala 2.12 での ExpressionSet のパフォーマンス低下
  • [SPARK-48081]: NTile.checkInputDataTypes() で引数が非 fold 可能な場合や型が間違っている場合に ClassCastException を修正
  • [SPARK-48292]: [SPARK-39195][SQL] Spark OutputCommitCoordinator は、コミットされたファイルがタスクステータスと一致しない場合にステージを中止すべき
  • [SPARK-48391]: TaskMetrics で add ではなく addAll を使用して高速化
  • [SPARK-48424]: dev/is-changed.py が失敗した場合に true を返すようにする
  • [SPARK-48586]: RocksDBFileManager の load() でファイルマッピングのディープコピーを作成して doMaintenance() のロック取得を削除
  • [SPARK-48610]: ExplainUtils.processPlan synchronize を削除
  • [SPARK-48806]: url_decode が失敗した場合に実際の例外を渡す
  • [SPARK-47481]: Python linter を修正
  • [SPARK-48535]: join null 関連の設定使用に関する警告をログに記録するようにドキュメントを更新
  • [SPARK-48934]: applyInPandasWithState でのタイムアウト設定のために Python datetime 型が誤って変換される

依存関係の変更

  • [SPARK-45445]: snappy を 1.1.10.5 にアップグレード
  • [SPARK-46335]: MNG-7913 のため Maven を 3.9.6 にアップグレード
  • [SPARK-47083]: commons-codec を 1.16.1 にアップグレード
  • [SPARK-47111]: PostgreSQL JDBC ドライバーを 42.7.2 に、docker イメージを 16.2 にアップグレード
  • [SPARK-47182]: commons-compressavro-* からの commons-(io|lang3) 移行依存関係を除外
  • [SPARK-47428]: Jetty を 9.4.54.v20240208 にアップグレード
  • [SPARK-47432]: pyarrow の上限要件を追加、<13.0.0
  • [SPARK-47790]: commons-io を 2.16.1 にアップグレード
  • [SPARK-48494]: airlift:aircompressor を 0.27 に更新
  • [SPARK-48920]: ORC を 1.9.4 にアップグレード

JIRA で 詳細な変更点 を確認できます。

このリリースにパッチを提供してくださったすべてのコミュニティメンバーに感謝いたします。


Spark ニュースアーカイブ