如何在 Scala 中计算每种交易类型每个账户的交易量平均值



我有关于典型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

最新更新