我有scala中的seqMap,它来自hive分区。
我需要从下面的Map序列中获取最新/最新业务日期
import org.joda.time.DateTime
val a = Seq(
Map("businessdate" -> DateTime.parse("2018-03-23T00:00:00.000Z")),
Map("businessdate" -> DateTime.parse("2018-03-24T00:00:00.000Z")),
Map("businessdate" -> DateTime.parse("2018-03-22T00:00:00.000Z")),
Map("businessdate" -> DateTime.parse("2018-03-21T00:00:00.000Z"))
)
预期输出与最近的业务日期对应。即
Map("businessdate" -> DateTime.parse("2018-03-24T00:00:00.000Z")
我试着用 sortWith
但结果却是错误的
val b = a.map(x => new DateTime( x.get("businessdate").get)
.isAfter(new DateTime( x.get("businessdate").get)))
println(b)
我刚到斯卡拉。感谢您的帮助。
1条答案
按热度按时间vxbzzdmp1#
使用
sortWith
要获取最近的业务日期:输出:
Map(businessdate -> 2018-03-24T00:00:00.000Z)
另一种使用foldLeft
,可能比排序整个Seq
自o(n):输出:
Map(businessdate -> 2018-03-24T00:00:00.000Z)