【发布时间】:2019-07-08 19:59:32
【问题描述】:
我使用的是 scala 2.12。
我有一个案例类如下:
case class MyClass(date: java.util.Date, book: String, priceLocal: Double, priceConv: Double)
我可以根据日期和书籍进行分组。
例如,对于:
val listOfMyClass = List(
MyClass(20190708, "book1", 100, 120),
MyClass(20190708, "book1", 200, 220),
MyClass(20190708, "book2", 50, 60),
MyClass(20190708, "book2", 60, 70)
)
val groupedData = listOfMyClass.groupBy(t => (t.date, t.book))
我想要 SQL 中的数据:
(20190708, "book1", 300, 340)
(20190708, "book2", 110, 130)
我可以对一列进行映射和求和,但不能同时使用这两列。
val groupedDataSum = listOfMyClass.groupBy(t => (t.date, t.book)).mapValues(_.map(_.priceLocal).sum)
但是如何将第二列也用作总和?
【问题讨论】: