メインコンテンツまでスキップ

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_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 より前のタイムスタンプの読み取り

from <format> ファイルは、次のように書き込まれるため、あいまいな場合があります。

Spark 2.x またはレガシ バージョンの Hive (レガシ ハイブリッド カレンダーを使用)

これは、Spark 3.0+ の先発性グレゴリオ暦とは異なります。

詳細については、 SPARK-31404 を参照してください。 SQL 構成 <config> または

データソースオプションは、datetime値をリベースするために「LEGACY」に<option>します

W.R.T.読書中のカレンダーの違い。 datetime 値を読み取るには

そのまま、SQL構成 <config> またはデータソースオプションを設定します <option>

を「CORRECTED」に。

未定

Spark >= <sparkVersion>: <details>

WRITE_ANCIENT_DATETIME

Spark >= 3.0:

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

詳細については、 SPARK-31404 を参照してください。

<config>を「LEGACY」に設定すると、書き込み中のカレンダーの違いに合わせて日時の値をリベースし、相互運用性を最大限に高めることができます。

または、書き込まれたファイルがSpark 3.0+またはProleptic Gregorianカレンダーを使用する他のシステムによってのみ読み取られることが確実な場合は、構成を「CORRECTED」に設定して、datetime値をそのまま書き込みます。