INCONSISTENT_BEHAVIOR_CROSS_VERSION錯誤類別
由於升級至新版本,您可能會收到不同的結果。
DATETIME_PATTERN_RECOGNITION
Spark >= 3.0:
無法辨識 <pattern>
DateTimeFormatter 中的模式。
- 您可以將
<config>
設定為 「LEGACY
」 以還原 Spark 3.0 之前的行為。 - 您可以使用 『
<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
」,以調整日期時間值,針對寫入時的日曆差異,從而獲得最大的互操作性。
或者,將配置設置為「CORRECTED
」,以原樣寫入日期時間值,如果您確定寫入的檔案只會由 Spark 3.0+ 或其他使用 Proleptic 公曆的系統讀取。