我有一个m2
RDD组成
case class Medication(patientID: String, date: Date, medicine: String)
我需要找到第一天和最后一天。我试过了
val latest_date_m2 = m2.maxBy(_.date).date
我有:
No implicit Ordering defined for java.sql.Date.
[error] val latest_date_m2 = m2.maxBy(_.date).date
看起来Scala“不知道”如何比较日期。我想,我需要用不同的功能替换maxBy
,但我找不到这个。
只需提供Ordering
import scala.math.Ordering
object SQLDateOrdering extends Ordering[java.sql.Date] {
def compare(a: java.sql.Date, b: java.sql.Date) = a compareTo b
}
m2.maxBy(_.date)(SQLDateOrdering)
虽然值得注意的是m2
不能是RDD
,因为RDD
没有maxBy
方法(很可能是Seq)。如果是你需要的RDD
object MedicationDateOrdering extends Ordering[Medication] {
def compare(a: Medication, b: Medication) = a.date compareTo b.date
}
和max
m2.max()(MedicationDateOrdering)