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’ 中的指南来构成有效的日期时间模式。

PARSE_DATETIME_BY_NEW_PARSER

Spark >= 3.0:无法在新解析器中解析 <datetime>。您可以设置 <config> 为 “LEGACY” 以恢复 Spark 3.0 之前的行为,或者设置为 “CORRECTED” 并将其视为无效的日期时间字符串。

READ_ANCIENT_DATETIME

Spark >= 3.0:从 <format> 文件读取 1582-10-15 之前的日期或 1900-01-01T00:00:00Z 之前的时间戳可能会产生歧义,因为这些文件可能由 Spark 2.x 或 Hive 的旧版本编写,这些版本使用与 Spark 3.0+ 的 Proleptic Gregorian 日历不同的旧混合日历。 有关更多详细信息,请参阅 SPARK-31404。 您可以设置 SQL 配置 <config> 或数据源选项 <option> 为 “LEGACY”,以便在读取期间根据日历差异重新调整日期时间值。 要按原样读取日期时间值,请将 SQL 配置或数据源选项设置为 “CORRECTED”。

WRITE_ANCIENT_DATETIME

Spark >= 3.0:将 1582-10-15 之前的日期或 1900-01-01T00:00:00Z 之前的时间戳写入 <format> 文件可能很危险,因为这些文件稍后可能由 Spark 2.x 或 Hive 的旧版本读取,这些版本使用与 Spark 3.0+ 的 Proleptic Gregorian 日历不同的旧混合日历。 有关更多详细信息,请参阅 SPARK-31404。 您可以设置 <config> 为 “LEGACY”,以便在写入期间根据日历差异重新调整日期时间值,以获得最大的互操作性。 或者将配置设置为 “CORRECTED” 以按原样写入日期时间值,如果您确定写入的文件仅由 Spark 3.0+ 或使用 Proleptic Gregorian 日历的其他系统读取。