Spark - Scala - 两个日期之间的天数

时间:2016-01-08 05:25:59

标签: scala apache-spark

我正在使用spark 1.3。

我有一个数据框,我需要计算给定日期和当前日期之间的天数。我正在尝试将此计算为选择聚合的一部分,如下所示。下面带有datediff函数的代码无效。

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

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

Datediff()函数引入了spark 1.5.0,因为你使用的是1.3,这就是你的脚本不工作的原因。更新到1.5.0以使其工作。

答案 1 :(得分:1)

如果您无法升级您的Spark版本,您可以提取并映射您的结果,使用Joda时间解析日期以计算两者之间的天数。

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

答案 2 :(得分:0)

Scala code:

val startDate = LocalDate.now
val endDate = startDate.plusDays(10)
val diff = Period.between(startDate, endDate).getDays
println(diff)

It will print 10