繁体   English   中英

查找Spark RDD中的最新/最早日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM