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矩阵之外的分布式块矩阵_Scala_Apache Spark_Apache Spark Mllib - Fatal编程技术网

Scala Spark矩阵之外的分布式块矩阵

Scala Spark矩阵之外的分布式块矩阵,scala,apache-spark,apache-spark-mllib,Scala,Apache Spark,Apache Spark Mllib,如何用相同大小的矩阵制作分布式块矩阵 例如,假设A,B是两个2乘2的mllib.linalg.matrix,如下所示 导入org.apache.spark.mllib.linalg.{Matrix,Matrix} 导入org.apache.spark.mllib.linalg.distributed.BlockMatrix val A:Matrix=Matrix.dense2,2,Array1.0,2.0,3.0,4.0 val B:Matrix=Matrix.dense2,2,Array5.0

如何用相同大小的矩阵制作分布式块矩阵

例如,假设A,B是两个2乘2的mllib.linalg.matrix,如下所示

导入org.apache.spark.mllib.linalg.{Matrix,Matrix} 导入org.apache.spark.mllib.linalg.distributed.BlockMatrix val A:Matrix=Matrix.dense2,2,Array1.0,2.0,3.0,4.0 val B:Matrix=Matrix.dense2,2,Array5.0,6.0,7.0,8.0 val C=新块矩阵??? 如何首先从A,B生成RDD[Int,Int,Matrix],然后从A,B生成分布式块矩阵

我非常感谢您事先提供的任何意见或帮助。

您可以先创建RDD[Int,Int,Matrix]来构建块矩阵

val块:RDD[Int,Int,Matrix]=sc.parallelizeSeq0,0,A,0,1,B 然后将其转换为块矩阵

val blockMatrix:blockMatrix=新BlockMatrixblocks,2,2 这将为您提供一个块矩阵,其形式为[a | B]。

您可以通过首先创建RDD[Int,Int,Matrix]来构造块矩阵

val块:RDD[Int,Int,Matrix]=sc.parallelizeSeq0,0,A,0,1,B 然后将其转换为块矩阵

val blockMatrix:blockMatrix=新BlockMatrixblocks,2,2
这将为您提供一个块矩阵,其形式为[a | B]。

对!所以我需要先导入org.apache.spark.rdd.rdd并定义块的类型。我只是在使用sc.parallelize,但它不起作用。谢谢。你知道有没有办法从上面的blockMatrix中获取特定的块i,j?你可以通过访问底层块RDD来实现这一点。例如blockMatrix.blocks.filter{case x,y,matrix=>x==i&&y==j}将为您提供一个RDD[Int,Int,matrix],其中仅包含选定的块。对!所以我需要先导入org.apache.spark.rdd.rdd并定义块的类型。我只是在使用sc.parallelize,但它不起作用。谢谢。你知道有没有办法从上面的blockMatrix中获取特定的块i,j?你可以通过访问底层块RDD来实现这一点。例如,blockMatrix.blocks.filter{case x,y,matrix=>x==i&&y==j}将为您提供一个RDD[Int,Int,matrix],其中仅包含选定的块。