Как предлагают другие, по возможности используйте встроенные функции 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