우노
[Spark] Spark SparseMatrix를 Breeze CSCMatrix로 변환하는 방법 본문
Spark SparseMatrix를 CSC format으로 생성 시, 매개변수 순서
- 행크기(rows)
- 열크기(cols)
- 열 압축 정보 배열(colPtrs)
- 열 순서대로 데이터의 행 인덱스 배열(rowIndices)
- 열 순서대로 데이터 배열(values)
Breeze CSCMatrix를 CSC format으로 생성 시, 매개변수 순서
- 열 순서대로 데이터 배열(values)
- 행크기(numRows)
- 열크기(numCols)
- 열 압축 정보 배열(colPtrs)
- 열 순서대로 데이터의 행 인덱스 배열(rowIndices)
Spark SparseMatrix를 Breeze CSCMatrix로 변환하는 코드
import org.apache.spark.mllib.linalg.SparseMatrix
import breeze.linalg.CSCMatrix
// 왼쪽 spark sparsematrix 생성
val sp_l_sm = new SparseMatrix(2,3,Array(0,1,2,3), Array(0,1,0), Array(1.0,7.0,3.0))
// 오른쪽 spark sparsematrix 생성
val sp_r_sm = new SparseMatrix(2,3,Array(0,1,2,3), Array(0,1,0), Array(1.0,7.0,3.0))
// 왼쪽 spark sparsematrix를 breeze sparsematrix로 변환
val bz_l_sm = new CSCMatrix[Double](sp_l_sm.values, sp_l_sm.numRows, sp_l_sm.numCols, sp_l_sm.colPtrs, sp_l_sm.rowIndices)
// 오른쪽 spark sparsematrix를 breeze sparsematrix로 변환
val bz_r_sm = new CSCMatrix[Double](sp_r_sm.values, sp_r_sm.numRows, sp_r_sm.numCols, sp_r_sm.colPtrs, sp_r_sm.rowIndices)
// breeze sm * sm.t 진행
val result_bz_sm = bz_l_sm * bz_r_sm.t
// 결과 breeze sparsematrix를 spark sparsematrix로 변환
val result_sp_sm = new SparseMatrix(result_bz_sm.rows, result_bz_sm.cols, result_bz_sm.colPtrs, result_bz_sm.rowIndices, result_bz_sm.data)
'Data > Spark' 카테고리의 다른 글
[Spark] Breeze CSCMatrix * DenseMatrix 분석 (0) | 2021.03.18 |
---|---|
[Spark] Breeze CSCMatrix * CSCMatrix 분석 (0) | 2021.03.17 |
[Spark] Spark 로그 확인 라이브러리 (0) | 2021.02.25 |
[Spark] Matrix를 일정 단위로 slice 한 뒤 각각의 nnz, density 구하기 (0) | 2020.11.30 |
[Spark] java.lang.IllegalArgumentException: requirement failed: dense matrix is too large to allocate , java.lang.NegativeArraySizeException 에러 원인 및 해결 방법 (3) | 2020.10.29 |
Comments