問題
你正試圖使用date_add ()或date_sub ()函數,但是它們返回一個SQL語句錯誤:AnalysisException錯誤消息。
在Spark 2.4及以下版本中,這兩個功能都可以正常工作。
%sql select date_add(cast('1964-05-23' as date), '12.34')
導致
您試圖使用小數或字符串值作為第二個參數。
在Spark 2.4及以下版本中,如果第二個參數是小數或字符串值,則強製將其轉換為int價值之前date_add ()或date_sub ()是評估。
使用上麵列出的示例代碼,值12.34被轉換為12之前date_add ()是評估。
在Spark 3.0中,如果第二個參數是小數或字符串值,則返回錯誤。
解決方案
使用int,短整型,或非常小的整數的第二個參數date_add ()或date_sub ()功能。
複製到clipboardCopy select date_add(cast('1964-05-23' as date), '12')
這兩個例子在Spark 3.0中都能正常工作。