2016-04-13 14 views
0

私はスパークとスカラ言語を学んでいます。だから助けてください。私は(ヒストグラムのような統計、)ビン(ビンサイズ= 3)に私が持っている..カサンドラを照会から3列(C1、C2C3)を取得し、Scalaのコードでデータフレームでそれを得ますc1であり、c1ビンにおける平均値はc2およびc3である。伝統的なforループの代わりにこれを行うために使用できる事前構築された関数はありますか?これを達成するための条件がありますか?スパークを使用:列1をビニングし、列1のビンに基づいて列2の平均を見つける

+0

をお試しください:http://stackoverflow.com/questions/29930110/how-to-more-efficiently-calculate-the-averages-for-each-key-ペアワイズkv – evgenii

答えて

0

私は、これは有用であると考えている。この

val modifiedRDD = rdd.map{case(c1, c2, c3) => ((c1), (c2, c3, 1))} 
val reducedRDD = modifiedRDD.reduceByKey{case(x, y) => (x._1+y._1, x._2+y._2, x._3+y._3)} 

val finalRDD = reducedRDD.map{case((c1), (totalC2, totalC3, count)) => (c1, totalC2/count, totalC3/count)} 
関連する問題