2017-06-09 12 views
0

transactionDaygroupbyメソッドを使用しようとしており、transactionAmountsumを取得しようとしています。出力を印刷します。Scalaのリストにsumとgroupbyを適用するには?

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 

誰でもgroupByメソッドを使用して助けることができます。

共有するドキュメントがあれば、本当に便利です。

+0

へようこそSOが必要なソリューションを取得するために動作するはずです!質問を改善する方法については、https://stackoverflow.com/help/mcveを参照してください。 – OlivierBlanvillain

+0

'transactions.groupBy(_。transctionDay).mapValues(_。map(_。transactionAmount).sum))' – Dima

+0

"それを共有するドキュメントがあれば、本当に役に立ちます。 - [ドキュメント](http://scala-lang.org/api/current/scala/collection/immutable/List.html#groupBy [K](f:A => K):scala.collection。不変。マッピング[K、Repr])? –

答えて

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) 
関連する問題