try_to_timestamp應該返回NULL後表達但投擲錯誤:
try_to_timestamp (“2019-02-28 23:59:59.000 ', ' yyyy-MM-dd HH: mm: ss ')
我理解以上表達式是錯誤的日期格式不確定的datetime文字,但我期望null代替INCONSISTENT_BEHAVIOR_CROSS_VERSION。PARSE_DATETIME_BY_NEW_PARSER錯誤。
謝謝你的問題在磚社區。
的try_to_timestamp ()函數的目的是試圖將一個字符串轉換為時間戳格式根據指定的模式並返回零如果不能這樣做。然而,在你提供的場景,它不返回零而是因為拋出錯誤輸入時間戳字符串不能解析的新datetime解析器中引入新版本的Apache火花。
一個方法你可以達到你的預期結果是使用try - catch塊而不是使用try_to_timestamp ():
從pyspark.sql。功能導入to_timestamp,點燃def try_to_timestamp (timestamp_string、模式):試題:返回to_timestamp(點燃(timestamp_string)模式):除了返回沒有try_to_timestamp (2019-02-28 23:59:59.000, yyyy-MM-dd HH: mm: ss) #返回null
這段代碼定義了一個新的函數try_to_timestamp ()包裝的to_timestamp ()函數在一個try - catch塊並返回沒有一個在發生異常,有效地模擬預期的行為try_to_timestamp ()應該表現出。