[英]Find the latest / earliest day in Spark RDD
我有一个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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.