Die Fehlerklasse „INCONSISTENT_BEHAVIOR_CROSS_VERSION“
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.
- Sie können
<config>
auf „LEGACY“ festlegen, um das Verhalten vor Spark 3.0 wiederherzustellen. - 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.