Die Fehlerklasse „INCONSISTENT_BEHAVIOR_CROSS_VERSION“

SQLSTATE: 42K0B

Möglicherweise erhalten Sie ein anderes Ergebnis aufgrund des Upgrades auf Folgendes:

DATETIME_PATTERN_RECOGNITION

Spark >= 3.0:

Es ist ein Fehler beim Erkennen des <pattern>-Musters im DateTimeFormatter aufgetreten.

  1. Sie können <config> auf „LEGACY“ festlegen, um das Verhalten vor Spark 3.0 wiederherzustellen.
  2. Sie können ein gültiges Datetime-Muster mit der Anleitung aus „<docroot>/sql-ref-datetime-pattern.html“ erstellen.

DATETIME_WEEK_BASED_PATTERN

Spark >= 3.0:

Alle wochenbasierten Muster werden seit Spark 3.0 nicht unterstützt, das wochenbasierte Zeichen wird erkannt: <c>.

Verwenden Sie stattdessen die SQL-Funktion EXTRACT.

PARSE_DATETIME_BY_NEW_PARSER

Spark >= 3.0:

Im neuen Parser ist ein Fehler beim Parsen von <datetime> aufgetreten.

Sie können <config> zu „LEGACY“ festlegen, um das Verhalten vor Spark 3.0 wiederherzustellen, oder Sie können „CORRECTED“ festlegen und ihn als ungültige datetime-Zeichenfolge zu behandeln.

READ_ANCIENT_DATETIME

Spark >= 3.0:

Das Lesen von Daten vor 1582-10-15 oder Zeitstempeln vor 1900-01-01T00:00:00Z

aus <format> Dateien kann mehrdeutig sein, da die Dateien möglicherweise geschrieben werden von

Spark 2.x oder Legacyversionen von Hive geschrieben wurden, wobei ein Legacyhybridkalender verwendet wird,

der sich von dem in Spark 3.0+ verwendeten proleptischen gregorianischen Kalender unterscheidet.

Weitere Informationen finden Sie unter SPARK-31404. Sie können die SQL-Konfiguration <config> festlegen oder

die Datenquellenoption <option> auf „LEGACY“ festlegen, um während des Lesens ein Rebase für die datetime-Werte

mit Rücksicht auf die Kalenderunterschiede auszuführen. Wenn Sie die datetime-Werte

so lesen möchten, wie sie angezeigt werden, legen Sie die SQL-Konfiguration <config> oder die Datenquellenoption <option> fest

„CORRECTED“ fest.

TBD

Spark >= <sparkVersion>: <details>

WRITE_ANCIENT_DATETIME

Spark >= 3.0:

Das Schreiben von Daten vor dem 15.10.1582 oder von Zeitstempeln vor 1900-01-01T00:00:00Z in <format>-Dateien kann gefährlich sein, da die Dateien später von Spark 2.x oder Legacy-Versionen von Hive gelesen werden können, wobei ein Legacy-Hybridkalender verwendet wird, der sich von dem proleptischen gregorianischen Kalender von Spark 3.0 und höher unterscheidet.

Weitere Informationen finden Sie unter SPARK-31404.

Sie können <config> auf „LEGACY“ festlegen, um während des Lesens ein Rebase der datetime-Werte in Bezug auf die Kalenderdifferenz auszuführen und so maximale Interoperabilität zu erzielen.

Sie können auch die Konfiguration auf „CORRECTED” festlegen, um die datetime-Werte wie angegeben zu schreiben, wenn Sie sicher sind, dass die geschriebenen Dateien nur von Spark 3.0 und höher oder anderen Systemen gelesen werden, die den proleptischen gregorianischen Kalender verwenden.