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:

从文件中读取 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”。

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”以按原样写入日期/时间值。