私は、データはこれに似て設定している場合:ペアRDD変換
val list = List ((1,1), (1,2), (1,3), (2,2), (2,1), (3,1), (3,3))
と出力があるべきように、Iごとのキーの平均を見つけたい:
(1, 2), (2, 3/2), (3, 2)
私はこれを行うことができますgroupByKey, countByKey, and reduceByKey
をどういうふうに使うか、以下のようなcombineByKeyメソッドを使う必要があります:groupByKey, countByKey, and reduceByKey
を使ってみましたが、この組み合わせのメソッドはうまくいきません。これらの3つのメソッドを使って行う方法が分かっているのでしょうか?
val result = input.combineByKey(
(v) => (v, 1),
(acc: (Int, Int), v) => (acc._1 + v, acc._2 + 1),
(acc1: (Int, Int), acc2: (Int, Int)) => (acc1._1 + acc2._1, acc1._2 + acc2._2)).
map{ case (key, value) => (key, value._1/value._2.toFloat) }
result.collectAsMap().map(println(_))
ああ右その配列に!お手伝いありがとう! – CapturedTree