2016-11-25 4 views
-1

Ich versuche, Werte für denselben Schlüssel hinzuzufügen.reduceByKey ergibt Infinity-Wert

val final= d1.join(d2).flatMap(line => Seq(line.swap._1)).reduceByKey((x, y) =>(x+y)) 

D1 und D2 sind Datenströme. Nach flatMap erhalte ich Schlüsselwertpaar.

Es wird jedoch in Unendlich-Wert in dieser Zeile resultierenden reduceByKey((x, y) =>(x+y))

zum Beispiel, wenn die Paare (k1,1.0) (k1,1.0) die Linie reduceByKey((x, y) =>(x+y)) Ergebnisse in (k1, Unendlich)

Irgendwelche Vorschläge?

+1

* Wenn die Paare (k1,1.0) (k1,1.0) sind, ergibt die Linie reduceByKey ((x, y) => (x + y)) (k1, Unendlichkeit) * Das ist nicht möglich. Das Problem muss irgendwo außerhalb dieses Code-Snippets liegen – maasg

+0

'flatMap (line => Seq (line.swap._1))' verliert alle Schlüssel und du wirst hinzufügen (1.0, 1.0) + (1.0.1.0) I don ' Ich denke, das ist die Absicht. Was willst du erreichen? – maasg

+1

Bitte a [mcve], danke –

Antwort

0

Das obige Code-Snippet funktioniert. Wie @maasg richtig andeutete, war das Problem woanders. Der Fehler wurde von division by zero im vorherigen Code verursacht, den ich hier nicht gepostet habe. Vielen Dank!