Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark:RDD到局部稀疏矩阵_Scala_Apache Spark - Fatal编程技术网

Scala Spark:RDD到局部稀疏矩阵

Scala Spark:RDD到局部稀疏矩阵,scala,apache-spark,Scala,Apache Spark,我有一个rdd格式:rdd[(Int,Int,Double)]。其中第一个值对应于行索引,第二个值对应于列索引,第三个值对应于此行索引中的值,即列索引 如何从这个rdd创建一个局部稀疏矩阵?我所做的工作如下: val denseLocalMatrix = new CoordinateMatrix(inputRDD.map { case (row, col, rw) => MatrixEntry(row.toLong, col.toLong, rw) }) .toBlockM

我有一个rdd格式:
rdd[(Int,Int,Double)]
。其中第一个值对应于行索引,第二个值对应于列索引,第三个值对应于此行索引中的值,即列索引

如何从这个rdd创建一个局部稀疏矩阵?我所做的工作如下:

val denseLocalMatrix = new CoordinateMatrix(inputRDD.map {
    case (row, col, rw) => MatrixEntry(row.toLong, col.toLong, rw)
  })
  .toBlockMatrix()
  .toLocalMatrix()
但这是一个稠密的局部矩阵。如何从初始的
inpurdd
创建稀疏的一个?有什么见解吗

我希望
matrix.sparse
格式类似于python
scipy
库的
csr\u矩阵((数据,(行索引,列索引)),[shape=(M,N)]
,但与
矩阵不同。sparse
希望:

SparseMatrix(numRows: Int, numCols: Int, colPtrs: Array[Int], rowIndices: Array[Int], values: Array[Double])
colPtrs:对应于新列开头的索引

RowIndex:条目的行索引。它们必须严格按照每列的递增顺序排列

所以我想不出一个直接使用这个的方法

编辑

另一种定义问题的方法是:


如何
(colIndices:Array[Int],rowIndexs:Array[Int])=>(colPtrs:Array[Int],rowIndexs:Array[Int])

您不能使用
denseMatrix.toSparse()
?不,这是不可能的
value-toSparse不是org.apache.spark.mllib.linalg.Matrix的成员
。实际上,
.toLocalMatrix()
的输出似乎是一个
矩阵
。即使有可能,它也不能从coo矩阵=>稠密矩阵=>稀疏矩阵得出结论。矩阵的维数太大,无法转换为稠密矩阵。您不能使用
denseMatrix.toSparse()
?不,这是不可能的
value-toSparse不是org.apache.spark.mllib.linalg.Matrix的成员
。实际上,
.toLocalMatrix()
的输出似乎是一个
矩阵
。即使有可能,它也不能从coo矩阵=>稠密矩阵=>稀疏矩阵得出结论。矩阵的维数太大,无法转化为稠密矩阵。