如何使用URI
在火花UDF中进行日期比较。
类似下面的内容..
java.nio
答案 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