如何在Scala中的列表中应用sum和groupby?

时间:2017-06-09 14:41:59

标签: scala

我正尝试在groupby上使用transactionDay方法并获取sum的{​​{1}}。并打印输出。

transactionAmount

我创建了一个这样的列表:

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 方法。

如果您有任何文件要分享,那将非常有帮助。

1 个答案:

答案 0 :(得分:2)

以下代码应该可以帮助您获得所需的解决方案

val transactions = transactionslines.map( line => line.split(","))
  .map(split => Transaction(split(0), split(1), split(2).toInt, split(3), split(4).toDouble))
transactions.groupBy(_.transactionDay).mapValues(trans => trans.map(amount => amount.transactionAmount).sum).foreach(println)