Spark Release 3.1.2

Spark 3.1.2 は、安定性修正を含むメンテナンスリリースです。このリリースは Spark の branch-3.1 メンテナンスブランチに基づいています。3.1 ユーザーには、この安定版リリースへのアップグレードを強く推奨します。

主な変更点

  • [SPARK-32924]: Web UI の期間ソートが間違っています
  • [SPARK-33482]: FileScan を拡張する V2 データソースは交換の再利用を妨げます
  • [SPARK-34361]: K8s での動的割り当ては実行中のタスクを持つエグゼキュータをキルします
  • [SPARK-34392]: Spark 3.0 以降、オフセットベースの ZoneId の ID が無効です
  • [SPARK-34417]: DataFrameNaFunctions.fillMap(values: Seq[(String, Any)]) は、ドットを含む列名で失敗します
  • [SPARK-34436]: DPP は LIKE ANY/ALL をサポートします
  • [SPARK-34473]: DataFrameReader.schema(StructType) での NPE を回避します
  • [SPARK-34482]: ストリーミングクエリのアクティブな SparkSession を修正します
  • [SPARK-34490]: テーブルが削除された場合、テーブルはビューとして解決される可能性があります
  • [SPARK-34497]: JDBC 接続プロバイダーは、Kerberos 認証情報を JVM セキュリティコンテキストから削除しません
  • [SPARK-34504]: 不要なビュー解決を回避し、performCheck フラグを削除します
  • [SPARK-34515]: getPartitionsByFilter 中に InSet が null 値を含む場合に NPE を修正します
  • [SPARK-34534]: OneForOneBlockFetcher の新しいプロトコル FetchShuffleBlocks は、データ損失または正確性の問題を引き起こします
  • [SPARK-34543]: V1 ALTER TABLE .. SET LOCATION での大文字小文字を区別する設定を尊重します
  • [SPARK-34545]: 異なる戻り値を持つ 2 つの Python UDF を 2 つの列に同時に適用した場合の不整合な結果を修正します
  • [SPARK-34547]: フォールバックとして子メタデータ属性を使用します
  • [SPARK-34550]: Hive メタストアにフィルターをプッシュする際に InSet の null 値をスキップします
  • [SPARK-34555]: DataFrame からのメタデータ出力を解決します
  • [SPARK-34556]: 静的パーティション列の重複チェックが大文字小文字を区別する設定を尊重しません
  • [SPARK-34561]: v2 DESCRIBE TABLE のデータセットからの列のドロップ/追加ができません
  • [SPARK-34567]: CreateTableAsSelect もメトリクスの更新を持つべきです
  • [SPARK-34577]: v2 DESCRIBE NAMESPACE のデータセットからの列のドロップ/追加ができません
  • [SPARK-34584]: 不正なパーティション値を持つパーティションテーブルに挿入する場合、DSV2 の動作が他と異なります
  • [SPARK-34596]: NewInstance.doGenCode は不正なクラス名エラーをスローするべきではありません
  • [SPARK-34599]: INSERT INTO OVERWRITE は、DSv2 のパーティション列にドットが含まれることをサポートしません
  • [SPARK-34607]: NewInstance.resolved は不正なクラス名エラーをスローするべきではありません
  • [SPARK-34610]: GroupedAggPandasUDFTests で使用される Python UDF を修正します
  • [SPARK-34613]: ビューが無効化ヒント設定をキャプチャしない問題を修正します
  • [SPARK-34630]: pyspark.version および pyspark.sql.Column.contains の型ヒントを追加します
  • [SPARK-34639]: Analyzer.resolveExpression で不要な Alias を常に削除します
  • [SPARK-34674]: k8s 上の Spark アプリは、sparkContext.stop() メソッドの呼び出しなしでは終了しません
  • [SPARK-34681]: 左側を構築する際のフルアウターシャッフルハッシュ結合が間違った結果を生成します
  • [SPARK-34682]: CustomShuffleReaderExec の「正規化されたプランの操作」チェックで回帰が発生しました
  • [SPARK-34697]: DESCRIBE FUNCTION および SHOW FUNCTIONS が文字列連結演算子について説明できるようにします
  • [SPARK-34713]: CreateStruct with ExtractValue でのグループ化が解析に失敗します
  • [SPARK-34714]: GROUP BY と一緒に使用すると collect_list(struct()) が失敗します
  • [SPARK-34719]: ビュークエリに重複した列名がある場合、失敗します
  • [SPARK-34723]: 全体ステージでの副式除去のパラメータタイプを修正します
  • [SPARK-34724]: getClass.getMethod を使用して解釈された評価を修正します。getDeclaredMethod ではなく
  • [SPARK-34727]: float から timestamp へのキャスト結果の違い
  • [SPARK-34731]: EventLoggingListener でプロパティをリダクトする際に ConcurrentModificationException が発生します
  • [SPARK-34737]: TIMESTAMP_SECONDS と float からのキャストの間の不一致
  • [SPARK-34756]: FileScan の等価性チェックを修正します
  • [SPARK-34763]: col(), $”" および df("name") は、引用符付きの列名を正しく処理する必要があります
  • [SPARK-34766]: ビューの Maven 設定をキャプチャしないでください
  • [SPARK-34768]: Univocity でデフォルトの入力バッファサイズを尊重します
  • [SPARK-34770]: InMemoryCatalog.tableExists は、データベースが存在しない場合に失敗するべきではありません
  • [SPARK-34772]: RebaseDateTime loadRebaseRecords は、コンテキストではなく Spark クラスローダーを使用するべきです
  • [SPARK-34776]: 特定の struct 操作で Catalyst エラーが発生しました (gen_alias が見つかりませんでした)
  • [SPARK-34790]: I/O 暗号化が有効になっている場合、バッチでのシャッフルブロックの取得で失敗します
  • [SPARK-34794]: ネストされた高階関数が DSL で破損しています
  • [SPARK-34796]: LIMIT 演算子があり、AQE がないクエリの Codegen コンパイルエラー
  • [SPARK-34803]: pandas または pyarrow のインポートに失敗した場合に ImportError をスローします
  • [SPARK-34811]: fs.s3a.access.key をシークレットやトークンのようにリダクトします
  • [SPARK-34814]: LikeSimplification は NULL を処理する必要があります
  • [SPARK-34829]: 高階関数の結果を修正します
  • [SPARK-34833]: 相関サブクエリに対して右パディングを正しく適用します
  • [SPARK-34834]: TransportResponseHandler に潜在的な Netty メモリリークがあります
  • [SPARK-34840]: プッシュされたマージされたシャッフルブロックの破損ケースを修正します
  • [SPARK-34845]: computeAllMetrics は、一部の子メトリクスが欠落している場合に部分的なメトリクスを返す可能性があります
  • [SPARK-34876]: NULL 不可の集計は、相関サブクエリで NULL を返す可能性があります
  • [SPARK-34897]: ネストされた列のプルーニング後のインデックスに基づいたスキーマの再調整をサポートします
  • [SPARK-34909]: conv() は負の入力を正しく符号なしに変換しません
  • [SPARK-34922]: より良い CBO コスト関数を使用します
  • [SPARK-34923]: メタデータ出力は常に伝播されるべきではありません
  • [SPARK-34926]: PartitionUtils.getPathFragment は null 値を処理する必要があります
  • [SPARK-34939]: ブロードキャストされたマップステータスをデシリアライズできない場合に、取得失敗例外をスローします
  • [SPARK-34948]: リークを修正するために、エグゼキュータの ConfigMap に ownerReference を追加します
  • [SPARK-34949]: Executor.reportHeartBeat は、Executor がシャットダウンしている場合でも blockManager を再登録します
  • [SPARK-34963]: ネストされた列のプルーニングは、配列から大文字小文字を区別しない struct フィールドを抽出するのに失敗します
  • [SPARK-34970]: explain() の出力で map-type オプションをリダクトします
  • [SPARK-35014]: 折りたたみ可能な式を AttributeReference に置き換えることができませんでした
  • [SPARK-35019]: pyspark.sql.* の型ヒントを改善します
  • [SPARK-35045]: univocity の入力バッファを制御する内部オプションを追加します
  • [SPARK-35079]: udf を使用した変換は間違った結果を生成します
  • [SPARK-35080]: 等価性述語を持つ相関サブクエリは間違った結果を生成する可能性があります
  • [SPARK-35087]: ステージ詳細ページの「エグゼキュータ別の集計メトリクス」の一部の列を修正します
  • [SPARK-35093]: AQE の列のマッチングが交換の再利用で失敗します
  • [SPARK-35096]: foreachBatch は、スキーマが大文字小文字を区別しない場合に ArrayIndexOutOfBoundsException をスローします
  • [SPARK-35106]: HadoopMapReduceCommitProtocol は、動的パーティション上書きが使用される場合に悪いリネームを実行します
  • [SPARK-35117]: UI の進行状況バーが進行中のタスクをハイライトしなくなりました
  • [SPARK-35127]: 異なるステージ詳細ページ間を切り替える場合、新しく開いたページの項目が空白になることがあります
  • [SPARK-35136]: LiveStage.info の初期 null 値は NPE を引き起こす可能性があります
  • [SPARK-35142]: OneVsRest 分類子は rawPrediction 列のデータ型を誤って使用します
  • [SPARK-35168]: mapred.reduce.tasks は shuffle.partitions であり、adaptive.coalescePartitions.initialPartitionNum ではありません
  • [SPARK-35213]: 特定の withField パターンの DataFrame が破損します
  • [SPARK-35226]: JDBC データソースは refreshKrb5Config パラメータを受け入れるべきです
  • [SPARK-35227]: SparkSubmit の spark-packages リゾルバで Bintray を新しいリポジトリサービスに置き換えます
  • [SPARK-35244]: invoke は元の例外をスローするべきです
  • [SPARK-35278]: Invoke は正しいパラメータ数のメソッドを見つけるべきです
  • [SPARK-35288]: StaticInvoke は、正確な引数クラスのマッチングなしでメソッドを見つけるべきです
  • [SPARK-35359]: char/varchar データ型でのデータ挿入は、データ長が長さを超えると失敗します
  • [SPARK-35381]: R API のネストされた DataFrame 関数でのラムダ変数名の問題を修正します
  • [SPARK-35382]: Python API のネストされた DataFrame 関数でのラムダ変数名の問題を修正します
  • [SPARK-35411]: TreeNode の JSON 文字列に不可欠な情報が欠落しています
  • [SPARK-35482]: BasicExecutorFeatureStep では、大文字小文字を区別するブロックマネージャーポートキーを使用する必要があります
  • [SPARK-35493]: spark.blockManager.port はドライバーポッドでは機能しません

依存関係の変更

メンテナンスリリースですが、このリリースではいくつかの依存関係をアップグレードしました。それらは次のとおりです。

  • [SPARK-34752]: Jetty を 9.4.37 にアップグレードして CVE-2020-27223 を修正します
  • [SPARK-34988]: Jetty を 9.4.39 にアップグレードして CVE-2021-28165 を修正します
  • [SPARK-35210]: Jetty を 9.4.40 にアップグレードして ERR_CONNECTION_RESET 問題を修正します

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

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


Spark ニュースアーカイブ