2017-04-16 5 views

答えて

0

では問題が何であるかを教えてください私は、Scalaのスパークからタイプ(int型、int型)のイテレータの最初の要素の合計を見つけたいです、x._2が(INT、INT)のイテレータである、あなたはそれを合計する、各タプルの最初の要素を抽出するマップを使用する必要がある:

wordCountsWithGroup.map(x => (x._1, x._2.map(_._1).sum) 
0

groupByKeyを使用しているようです。これは本当に悪い選択です。

は何が本当にすべきことはreduceByKey続いいずれかmapValues次のとおりです。

val rdd = sc.parallelize(Seq(("first", (1, 1)), ("first", (1, 1)))) 

rdd.mapValues(_._1).reduceByKey(_ + _) 

または

rdd.aggregateByKey(0)({ case (acc, (x, _)) => acc + x}, _ + _) 
+0

aggregateByKeyは良い説明をありがとうございました。私はスパイクの異なるapiを理解したいと思っていました。私はいつもgroupByKey、reduceByKey、aggregateByKeyと混同しています – vkrishna

関連する問題