我有关于典型sql查询的知识,但我在用scala编写时遇到了这个问题。
case class Transaction(
transactionId: String,
accountId: String,
transactionDay: Int,
category: String,
transactionAmount: Double)
我创建了一个这样的列表:
val transactions: List[Transaction] = transactionslines.map { line =>
val split = line.split(',')
Transaction(split(0), split(1), split(2).toInt, split(3), split(4).toDouble)
}.toList
列表的内容T0001,A27,1,GG,338.11
谁能帮助我计算 scala 中每种交易类型每个账户的平均值?
您可以使用
groupBy
,然后将值映射到金额的平均值:
val result = transactions.groupBy(t => (t.accountId, t.category))
.mapValues(_.map(_.transactionAmount)) // map lists of Transaction to lists of Doubles
.mapValues(list => list.sum / list.size) // calculate average or each list