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 之前的时间戳

可能会造成歧义,因为这些 <format> 文件可能是

由 Spark 2.x 或旧版本的 Hive 编写的,其使用

与 Spark 3.0+ 的外推格里历不同的传统混合日历。

SPARK-31404 中查看更多详细信息 可以将 SQL 配置 <config>

数据源选项 <option> 设置为 LEGACY,以将日期/时间值变基

根据日历差异重新设置日期/时间值。 要按原样读取日期/时间值,

将 SQL 配置 <config> 或数据源选项 <option> 设置为

CORRECTED

TBD

Spark >= <sparkVersion><details>

WRITE_ANCIENT_DATETIME

Spark >= 3.0:

将 1582-10-15 之前的日期或 1900-01-01T00:00:00Z 之前的时间戳写入 <format> 文件可能很危险,因为这些文件稍后可能会由 Spark 2.x 或旧版 Hive 读取,而这些版本使用与 Spark 3.0+ 的前公历不同的旧混合日历。

SPARK-31404 中查看更多详细信息

可以将 <config> 设置为 LEGACY 以在写入过程中根据日历差异变基日期/时间值,以最大限度地提高互操作性。

如果确定写入的文件只能由 Spark 3.0+ 或其他使用前公历的系统读取,也可将配置设置为 CORRECTED 以按原样写入日期/时间值。