共用方式為


INCONSISTENT_BEHAVIOR_CROSS_VERSION錯誤類別

SQLSTATE: 42K0B

由於升級至下列專案,您可能會收到不同的結果:

DATETIME_PATTERN_RECOGNITION

Spark >= 3.0:

無法辨識 <pattern> DateTimeFormatter 中的模式。

  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”,並將它視為無效的 datetime 字串。

READ_ANCIENT_DATETIME

Spark >= 3.0:

讀取 1582-10-15 之前的日期或 1900-01-01T00:00:00Z 之前的時間戳

來自 <format> 檔案可能模棱兩可,因為檔案可能由

Spark 2.x 或舊版 Hive,其使用舊版混合式行事曆

與Spark 3.0+ 的 Proleptic 公曆不同。

請參閱SPARK-31404中的更多詳細數據。 您可以設定 SQL 組態 <config>

要重新設定日期時間值的數據源選項 <option> 為 “LEGACY”

w.r.t. 讀取期間的行事曆差異。 若要讀取 datetime 值

就這樣,請設定 SQL 組態 <config> 或數據源選項 <option>

為 「CORRECTED」。。

待定

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+的 Proleptic 公曆不同的舊版混合式行事歷。

請參閱SPARK-31404中的更多詳細數據。

您可以將 設定 <config> 為 「LEGACY」 以重新設定日期時間值 w.r.t. 寫入期間的行事曆差異,以取得最大的互操作性。

或者,將組態設定為 「CORRECTED」 以撰寫日期時間值,如果您確定寫入的檔案只會由 Spark 3.0+ 或其他使用 Proleptic 公曆的系統讀取。