0
스칼라를 사용하여 스파크에서 두 개의 희소 행렬을 곱하려고합니다. 나는 인수의 형태로 이러한 행렬을 전달하고 또 다른 인수에 결과를 저장합니다. 행렬은 각 행렬 요소가 행, 열, 요소로 표시되는 텍스트 파일입니다.스칼라에서 "double"값의 곱
스칼라에서 두 개의 Double 값을 곱할 수 없습니다.
object MultiplySpark {
def main(args: Array[ String ]) {
val conf = new SparkConf().setAppName("Multiply")
conf.setMaster("local[2]")
val sc = new SparkContext(conf)
val M = sc.textFile(args(0)).flatMap(entry => {
val rec = entry.split(",")
val row = rec(0).toInt
val column = rec(1).toInt
val value = rec(2).toDouble
for {pointer <-1 until rec.length} yield ((row,column),value)
})
val N = sc.textFile(args(0)).flatMap(entry => {
val rec = entry.split(",")
val row = rec(0).toInt
val column = rec(1).toInt
val value = rec(2).toDouble
for {pointer <-1 until rec.length} yield ((row,column),value)
})
val Mmap = M.map(e => (e._2,e))
val Nmap = N.map(d => (d._2,d))
val MNjoin = Mmap.join(Nmap).map{ case (k,(e,d)) => e._2.toDouble+","+d._2.toDouble }
val result = MNjoin.reduceByKey((a,b) => a*b)
.map(entry => {
((entry._1._1, entry._1._2), entry._2)
})
.reduceByKey((a, b) => a + b)
result.saveAsTextFile(args(2))
sc.stop()
스칼라에서 어떻게 두 값을 곱할 수 있습니까? 더블
"오류 발생"이 아니라 실제 컴파일 오류를 게시해야합니다. –
제 질문을 보아 주셔서 감사합니다. 나는 이제 내 질문을 오류로 수정했다. 한번 봐주세요. –