Spark UDF比较日期

时间:2018-06-12 15:10:12

标签: scala apache-spark

如何使用URI在火花UDF中进行日期比较。

类似下面的内容..

java.nio

1 个答案:

答案 0 :(得分:2)

正如其他人所建议的那样,尽可能使用Spark的内置函数以获得更好的性能。如果您必须使用udf,则可以使用implicit conversion启用日期/时间比较:

import scala.language.implicitConversions
import org.joda.time.DateTime
import java.sql.Date

val d1 = Date.valueOf("2018-06-11")
val d2 = Date.valueOf("2018-06-12")

implicit def dateToDT(d: Date) = new DateTime(d)

d1.isAfter(d2)
// res1: Boolean = false

d1.isBefore(d2)
// res2: Boolean = true

如果您更喜欢使用不等式运算符,请改用以下代码:

implicit def dateToDT(d: Date) = (new DateTime(d)).getMillis

d1 > d2
// res3: Boolean = false

d1 < d2
// res4: Boolean = true