次の方法で共有


INCONSISTENT_BEHAVIOR_CROSS_VERSION エラー クラス

SQLSTATE: 42K0B

アップグレード先によって結果が異なる場合があります。

DATETIME_PATTERN_RECOGNITION

Spark >= 3.0:

DateTimeFormatter の <pattern> パターンを認識できません。

  1. <config> を "LEGACY" に設定すると、Spark 3.0 より前の動作に復元できます。
  2. <docroot>/sql-ref-datetime-pattern.html’に記載されたガイドに従って有効な datetime パターンを形成できます。

DATETIME_WEEK_BASED_PATTERN

Spark >= 3.0:

すべての週ベースのパターンは、Spark 3.0 以降サポートされていません。検出された週ベースの文字: <c>

代わりに SQL 関数 EXTRACT を使用してください。

PARSE_DATETIME_BY_NEW_PARSER

Spark >= 3.0:

新しいパーサーで <datetime> の解析に失敗しました。

<config> を "LEGACY" に設定すると Spark 3.0 以前の動作を復元することができます。"CORRECTED" に設定すると、無効な日付文字列として扱われます。

READ_ANCIENT_DATETIME

Spark >= 3.0:

1582-10-15 より前の日付または 1900-01-01T00:00:00Z より前のタイムスタンプを

<format> ファイルから読み取ると、あいまいな結果が得られる場合があります。

これは、ファイルが Spark 2.x やレガシ バージョンの Hive で書かれたものである可能性があるためです。

これには、Spark 3.0 以降の予期的グレゴリオ暦とは異なるレガシのハイブリッド カレンダーが使用されています。

詳細については、SPARK-31404 をご覧ください。 SQL 構成 <config>

またはデータソース オプション <option> を "LEGACY" に設定すると、

読み込み時に暦の違いとしての datetime 値の w.r.t. をリベースできます。 datetime の値をそのまま読み込むには、

SQL 構成 <config> またはデータソース オプション <option> を、

"CORRECTED" に設定します。

TBD

Spark >= <sparkVersion>: <details>

WRITE_ANCIENT_DATETIME

Spark >= 3.0:

<format> ファイルに 1582-10-15 より前の日付や 1900-01-01T00:00:00Z より前のタイムスタンプを書き込むと、危険性が生じる場合があります。これは、ファイルがその後 Spark 2.x やレガシ バージョンの Hive で読まれる可能性があるためです。これには、Spark 3.0+ の予期的グレゴリオ暦とは異なるレガシのハイブリッド カレンダーが使用されています。

詳細については、SPARK-31404 をご覧ください。

<config> を "LEGACY "に設定すると、読み込み時に暦の違いとしての datetime 値の w.r.t. をリベースして最大限の相互運用性が得られます。

または、書き込んだファイルが Spark 3.0+ や予期的グレゴリオ暦を使用するシステムでのみ読み込まれることが確実な場合は、構成を "CORRECTED" に設定し、datetime 値をそのまま書き込みます。