Ich versuche dies für Matrixmultiplikation von zwei großen Matrizen in Scala zu tun. Unten ist die Logik für die Multiplikation:Scala-Fehler: Konstruktor kann nicht zum erwarteten Typ instanziiert werden;
val res = M_.map(M_ => (M_.j,M_))
.join(N_.map(N_ => (N_.j, N_)))
.map({ case (_, ((i, v), (k, w))) => ((i, k), (v * w)) })
.reduceByKey(_ + _)
.map({ case ((i, k), sum) => (i, k, sum) })
M_
und N_
sind zwei RDDs dieser beiden Klassen:
case class M_Matrix (i: Long, j: Long, v: Double)
case class N_Matrix (j: Long, k: Long, w: Double)
Aber ich folgende Störung erhalte:
Was mache ich hier falsch?
Bitte fügen Sie der Frage mehr Code hinzu. Wie erstellen Sie die Matrizen 'M_' und' N_' und die Definition von 'M_Matrix' und' N_Matrix'. Ich fügte hinzu, was ich glaube, ist die richtige Definition (aus einer anderen Frage). – Shaido