Scala 在Spark RDD中查找最新/最早的一天
我有一个Scala 在Spark RDD中查找最新/最早的一天,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,我有一个m2RDD,包括 case class Medication(patientID: String, date: Date, medicine: String) 我需要找到第一天和最后一天。我试过了 val latest_date_m2 = m2.maxBy(_.date).date 我得到: 没有为java.sql.Date定义隐式排序。 [错误]val latest_date_m2=m2.maxBy(u.date).date 看起来Scala“不知道”如何比较日期。我想,我需要
m2
RDD,包括
case class Medication(patientID: String, date: Date, medicine: String)
我需要找到第一天和最后一天。我试过了
val latest_date_m2 = m2.maxBy(_.date).date
我得到:
没有为java.sql.Date定义隐式排序。
[错误]val latest_date_m2=m2.maxBy(u.date).date
看起来Scala“不知道”如何比较日期。我想,我需要用一个不同的函数替换
maxBy
,但我找不到这个函数。只需提供排序
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)
只需提供
订购
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)
你能指定日期的格式吗?它是字符串的日期类型还是时间戳?您可以指定日期的格式吗?它是字符串的日期类型还是时间戳类型