我有一个由
组成的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
替换为其他函数,但找不到该函数。
答案 0 :(得分:3)
只需提供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)