2015-05-25 97 views
1

我是一個scala初學者,我想在Observable上執行一個簡單的groupbysum。例如:當執行一個scala groupby和sum Observable

(a,3) 
(b,8) 

我能總結了所有test.map(_._2).sum,但不是:

val test = Observable.just(("a", 1), ("a", 2), ("b", 5), ("b",3)) 

我想GROUP BY鍵和所有的值,所以有一些像groupby

+0

與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts)。 –

+0

需要更多的上下文。您使用的是Observable的哪個實現?您可以顯示可用的代碼,以及您嘗試的代碼無法工作。代碼發生了什麼?那是行不通的,有沒有編譯錯誤或一些意想不到的結果? –

回答

2

不是你正在尋找的類清楚。我繞過scala.react和reactivex.io,但如何翻找一下:

scala> val test999=Seq(("a",1),("a",16),("b",5),("a",9),("b",9),("c",90)) 
test999: Seq[(String, Int)] = List((a,1), (a,16), (b,5), (a,9), (b,9), (c,90)) 

scala> test999 
res12: Seq[(String, Int)] = List((a,1), (a,16), (b,5), (a,9), (b,9), (c,90)) 

scala> test999.groupBy(_._1).mapValues(_.map(_._2).sum) 
res13: scala.collection.immutable.Map[String,Int] = Map(b -> 14, a -> 26, c -> 90) 
+0

這不就是標準的Scala集合嗎?爲什麼它會是一個可接受的答案,提問Observbles? –

+0

就像Angelo說的那樣,需要上下文 – Drew

0

鑑於

我能總結了所有test.map(_._ 2)的.sum ...

即有可能maptest,考慮申請groupBytest.toSeq