1
텍스트 파일에서 생성 된 두 개의 희소 행렬을 곱하려고합니다. 현재 다음 코드를 가지고 있습니다 :2 개의 희소 행렬 곱하기
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
@SerialVersionUID(123L)
case class M_Matrix (i: Long, j: Long, v: Double)
extends Serializable {}
@SerialVersionUID(123L)
case class N_Matrix (j: Long, k: Long, w: Double)
extends Serializable {}
object Multiply {
def main(args: Array[ String ]){
val conf = new SparkConf().setAppName("Multiply")
val sc = new SparkContext(conf)
val M_ = sc.textFile(args(0)).map(line => { val a = line.split(",")
M_Matrix(a(0).toLong,a(1).toLong,a(2).toDouble) })
val N_ = sc.textFile(args(1)).map(line => { val a = line.split(",")
N_Matrix(a(0).toLong, a(1).toLong, a(2).toDouble) })
val res = M_.map(M_ => (M_.j,M_))
.join(N_.map(N_ => (N_.j, N_)))
.map({case (j, ((i,v),(k,w))) => ((i,k), v * w)})
.reduceByKey(_ + _)
.map({ case ((i,k), sum) => (i, k, sum)})
res.saveAsTextFile(args(2))
sc.stop()
}
}
* v * w에서 유효한 연산자가 아닙니다.
내가 뭘 잘못하고 있니?
을 intellij에. 내장 기능을 사용할 때. 오류가 발생했습니다 –
@SiddhantAttri 무엇이 오류입니까? – Shaido
말로는 BlockMatrix –