我正在嘗試使用 to_date 將字串列轉換為日期。一切正常,但是,我的要求是,如果有任何錯誤資料,即任何格式錯誤的日期輸入,則使 spark 作業失敗。目前, to_date 回傳 null,但沒有下降。如何確保在這種情況下該作業會失敗?
uj5u.com熱心網友回復:
該to_date函式的行為取決于spark.sql.ansi.enabledSpark 選項。當它被禁用(默認)時,Spark 使用符合 Hive 的方言并回傳 null 結果而不是失敗。相反,如果啟用,Spark 將符合 ANSI 標準,如果輸入格式不正確,則 Spark 將失敗,如此處所述。
也就是說,您可能不想啟用spark.sql.ansi.enabled,因為它還有許多其他效果,請參見此處。
另一種解決方案是使用 UDF 而不是to_date函式來執行日期決議,并在決議失敗時拋出例外。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/519591.html
