Spark Release 3.4.2
Spark 3.4.2 は、セキュリティおよび正確性に関する修正を含むメンテナンスリリースです。このリリースは Spark の branch-3.4 メンテナンスブランチに基づいています。3.4 ユーザーの皆様には、この安定版リリースへのアップグレードを強く推奨します。
主な変更点
- [SPARK-42784]: マージディレクトリのサブディレクトリ数が設定値より少ない場合でも subDir を作成する
- [SPARK-43203]: セッションカタログでの DROP table の動作を修正
- [SPARK-43393]: シーケンス式オーバーフローバグに対処
- [SPARK-44040]: AggregateExec ノードが QueryStageExec の上にある場合の統計計算を修正
- [SPARK-44079]: PERMISSIVE モードで破損レコードを使用して配列を構造体として解析する際の ArrayIndexOutOfBoundsException を修正
- [SPARK-44134]: spark-defaults.conf で設定されたリソース (GPU/FPGA) を 0 に設定する問題を修正
- [SPARK-44136]: StateManager が FlatMapGroupsWithStateExec でドライバではなくエグゼキュータでマテリアライズされる可能性のある問題を修正
- [SPARK-44142]: Python の型を Spark の型に変換するユーティリティで type を tpe に置き換え
- [SPARK-44180]: DistributionAndOrderingUtils は ResolveTimeZone を適用すべき
- [SPARK-44206]: DataSet.selectExpr のスコープは Session.active
- [SPARK-44215]: チャンク数が 0 の場合、サーバーは RuntimeException をスローすべき
- [SPARK-44241]: io.connectionTimeout/connectionCreationTimeout がゼロまたは負の値に誤って設定されると、絶え間ないエグゼキュータの接続/切断が発生する
- [SPARK-44251]: FULL OUTER USING JOIN で連結された JOIN キーに nullable を正しく設定
- [SPARK-44313]: スキーマに char/varchar 列がある場合の生成列式の検証を修正
- [SPARK-44391]:
InvokeLike で引数型の数をチェック
- [SPARK-44464]: applyInPandasWithStatePythonRunner が最初の列の値として Null を持つ行を出力するように修正
- [SPARK-44479]: 空の構造体型からの protobuf 変換を修正
- [SPARK-44547]: キャッシュされた RDD マイグレーションのフォールバックストレージを無視
- [SPARK-44581]: ShutdownHookManager が ApplicationMaster の SecurityManager から誤った UGI を取得するバグを修正
- [SPARK-44588]: マイグレートされたシャフルブロックの二重暗号化問題を修正
- [SPARK-44630]: "[SPARK-43043] MapOutputTracker.updateMapOutput のパフォーマンスを改善" を元に戻す
- [SPARK-44634]: Encoders.bean は型引数を持つネストされた Bean をサポートしなくなった
- [SPARK-44641]: SPJ がトリガーされない特定シナリオでの結果の誤り
- [SPARK-44653]: 非自明な DataFrame の union はキャッシングを壊すべきではない
- [SPARK-44657]: ArrowBatchWithSchemaIterator での不正確な limit 処理と CONNECT_GRPC_ARROW_MAX_BATCH_SIZE の設定解析を修正
- [SPARK-44805]: getBytes/getShorts/getInts などは、辞書を持つ列ベクトルで機能するべき
- [SPARK-44840]:
array_insert() を負のインデックスに対して 1 ベースにする
- [SPARK-44846]: RemoveRedundantAggregates で冗長な下位 Aggregates を Project に変換
- [SPARK-44854]: Python timedelta から DayTimeIntervalType へのエッジケースバグ
- [SPARK-44857]: Spark Worker LogPage UI ボタンでの
getBaseURI エラーを修正
- [SPARK-44859]: 構造化ストリーミングドキュメントの不正確なプロパティ名を修正
- [SPARK-44871]: percentile_disc の動作を修正
- [SPARK-44910]: Encoders.bean はジェネリック型引数を持つスーパークラスをサポートしない
- [SPARK-44920]: TransportClientFactory.createClient() で await() を awaitUninterruptibly() の代わりに使う
- [SPARK-44925]: K8s のデフォルトサービス トークンファイルはトークンにマテリアライズされるべきではない
- [SPARK-44935]: Docker イメージが存在する場合、
RELEASE ファイルに正しい情報が含まれるように修正
- [SPARK-44937]: TransportClient.close で接続を timedOut とマークする
- [SPARK-44940]: "spark.sql.json.enablePartialResults" が有効な場合の JSON 解析パフォーマンスを改善
- [SPARK-44973]:
conv() における ArrayIndexOutOfBoundsException を修正
- [SPARK-44990]: get
spark.sql.legacy.nullValueWrittenAsQuotedEmptyStringCsv の頻度を減らす
- [SPARK-45054]: HiveExternalCatalog.listPartitions はパーティション統計を復元すべき
- [SPARK-45057]: keepReadLock が false の場合に読み取りロックの取得を回避
- [SPARK-45071]: マルチカラムデータを処理する際の
BinaryArithmetic#dataType の処理速度を最適化
- [SPARK-45075]: 無効なデフォルト値を持つ alter table がエラーを報告しない問題を修正
- [SPARK-45078]:
array_insert ImplicitCastInputTypes が機能しない問題を修正
- [SPARK-45079]:
NULL accuracy に対する percentile_approx() からの内部エラーを修正
- [SPARK-45081]: Encoders.bean は読み取り専用プロパティをサポートしなくなった
- [SPARK-45100]:
NULL クラスおよびメソッドに対する reflect() からの内部エラーを修正
- [SPARK-45109]: Connect におけるログ関数を修正
- [SPARK-45187]:
logPage URL に WorkerPage が同じパターンを使用するように修正
- [SPARK-45227]: CoarseGrainedExecutorBackend の微妙なスレッドセーフティ問題を修正
- [SPARK-45282]: InMemoryTableScanExec を使用した AQE における正確性の問題
- [SPARK-45389]: パーティションメタデータの取得における MetaException マッチングルールを修正
- [SPARK-45430]: FramelessOffsetWindowFunction で IGNORE NULLS かつ offset > rowCount の場合の修正
- [SPARK-45433]: CSV/JSON スキーマ推論でタイムスタンプが指定された timestampFormat と一致しない場合の修正
- [SPARK-45473]: RoundBase の不正確なエラーメッセージを修正
- [SPARK-45508]: Platform が Java 9+ で Cleaner にアクセスできるように "–add-opens=java.base/jdk.internal.ref=ALL-UNNAMED" を追加
- [SPARK-45592]: InMemoryTableScanExec を使用した AQE における正確性の問題
- [SPARK-45604]: Parquet Vectorized Reader での INT64 -> DateTime 変換時の LogicalType チェックを追加
- [SPARK-45652]: SPJ: 動的フィルタリング後の空の入力パーティションを処理
- [SPARK-45670]: K8s 上でデプロイする際に SparkSubmit は "--total-executor-cores" をサポートしない
- [SPARK-45678]: BufferReleasingInputStream.available/reset を tryOrFetchFailedException でカバー
- [SPARK-45749]: Spark History Server が Duration 列を正しくソートするように修正
- [SPARK-45786]: 不正確な Decimal の乗算および除算の結果を修正
- [SPARK-45814]: ArrowConverters.createEmptyArrowBatch がメモリリークを回避するために close() を呼び出すようにする
- [SPARK-45882]: BroadcastHashJoinExec は CoalescedHashPartitioning を尊重してパーティショニングを伝播すべき
- [SPARK-45896]: 正しい期待される型で
ValidateExternalType を構築
- [SPARK-45920]: ordinal による group by は冪等であるべきである
- [SPARK-46006]: YarnAllocator は、YarnSchedulerBackend が stop を呼び出した後に targetNumExecutorsPerResourceProfileId をクリーンアップし忘れる
- [SPARK-46012]: EventLogFileReader はアプリステータスファイルが欠落している場合にローリングログを読み取るべきではない
- [SPARK-46062]: CTE 定義と参照間の isStreaming フラグを同期
- [SPARK-46064]: EliminateEventTimeWatermark をアナライザに移動し、解決された子にのみ効果があるように変更
依存関係の変更
メンテナンスリリースですが、このリリースではいくつかの依存関係をアップグレードしました。それらは以下の通りです。
JIRA で 詳細な変更点 を確認できます。
このリリースにパッチを提供してくださったすべてのコミュニティメンバーに感謝いたします。
Spark ニュースアーカイブ