次の方法で共有


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" に設定して無効な datetime 文字列として扱うことができます。

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>

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

読み込み時に暦の違いとしての 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 値を調整し、相互運用性を最大化できます。

または、書き込まれたファイルが Spark 3.0 以降または Proleptic グレゴリオ暦を使用する他のシステムによってのみ読み取られると確信している場合は、datetime 値をそのまま書き込むには、config を "CORRECTED" に設定します。