INCONSISTENT_BEHAVIOR_CROSS_VERSION 错误类
由于升级到,您可能会得到不同的结果
此错误类具有以下派生错误类
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+ 的先发格里高利历不同的旧混合日历。有关详细信息,请参阅 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+ 的先发格里高利历不同的旧混合日历。有关详细信息,请参阅 SPARK-31404。您可以将 <config> 设置为“LEGACY”,以便在写入期间根据日历差异重新设置日期时间值,以获得最大的互操作性。或者,如果您确定写入的文件将仅由 Spark 3.0+ 或其他使用先发格里高利历的系统读取,则可以将配置设置为“CORRECTED”以按原样写入日期时间值。