我正在使用spark 1.3。
我有一个数据框,我需要计算给定日期和当前日期之间的天数。我正在尝试将此计算为选择聚合的一部分,如下所示。下面带有datediff函数的代码无效。
val testdate = Inputdata.selectExpr("id",
"amt",
"substr(TranDt,1,4) as TranYear",
"datediff(current_date(), TranDt) as numofdays")
非常感谢任何帮助。
答案 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