2016-01-08 68 views
0

我正在使用spark 1.3。Spark - Scala - 兩個日期之間的天數

我有一個數據框,我需要計算給定日期和當前日期之間的天數。我試圖計算這是一個選擇聚合的一部分,如下所示。以下代碼與datediff功能不起作用。

val testdate = Inputdata.selectExpr("id", 
            "amt", 
            "substr(TranDt,1,4) as TranYear", 
            "datediff(current_date(), TranDt) as numofdays") 

任何幫助真的很感激。

+4

「不工作」是什麼意思? – Reactormonk

+0

我在看的是兩個日期之間的天數。該作業未運行,並顯示下面的錯誤消息「線程中的異常」main「java.util.NoSuchElementException:key not found:datediff」。我認爲datediff和current_date()函數不起作用。有沒有辦法計算天數? – user5692277

回答

1

由於您使用的是1.3,所以DATEIFF()函數引入了spark 1.5.0,這就是您的腳本無法工作的原因。更新到1.5.0來完成這項工作。

1

如果你無法升級你的Spark版本,你可以提取並映射你的結果,使用像喬達時間這樣的解析日期來計算出兩者之間的天數。

Days.daysBetween(firstdate, seconddate).getDays()