Apache Spark中RowMatrix和Matrix之间的区别?

时间:2016-02-19 05:09:17

标签: java apache-spark apache-spark-mllib

我想知道Apache Spark中可用的RowMatrix和Matrix类之间的基本区别。

2 个答案:

答案 0 :(得分:4)

这里有一个更精确的问题是mllib.linalg.Matrixmllib.linalg.distributed.DistributedMatrix之间的区别。

  • Matrix是表示本地矩阵的特征,它位于单个计算机的内存中。目前有两种基本实现:DenseMatrixSparseMatrix
  • DistributedMatrix是一种在RDD之上代表分布式矩阵构建的特征。 RowMatrixDistributedMatrix的子类,它以行方式存储数据,而没有有意义的行排序。还有DistributedMatrix的其他实现(如IndexedRowMatrixCoordinateMatrixBlockMatrix),每个实现都有自己的存储策略和特定的方法集。请参阅示例Matrix Multiplication in Apache Spark

答案 1 :(得分:0)

这对于你正在使用的语言/框架/学科的习语有点下降,但在计算机科学中,数组是“事物”的一维“列表”,可以由他们引用在列表中的位置。列表中可以包含的另一个数据是另一个数组,它允许您创建数组数组(数组数组......),为您提供任意大尺寸的数据集。

矩阵来自线性代数,是数据的二维表示(可以由数组数组表示),它带有一组强大的数学运算,允许您以有趣的方式处理数据。虽然数组的大小可能不同,但矩阵的宽度和高度通常基于您要执行的特定操作类型而知道。

矩阵在3D图形和物理引擎中广泛使用,因为它们是一种快速,方便的方法,可以表示三维对象的变换和加速度数据。

数组:同类元素的集合。

矩阵:一个简单的行和列事物。

两者在不同的空间都是不同的东西。 但是在计算机编程中,单维数组的集合可以称为矩阵。 您可以以矩阵形式表示二维数组(即单维数组的集合)。

实施例

  

A [2] [3]:这意味着A是2个单维数组的集合   每个大小3.

     

A [1,1] A [1,2] A [1,3] //这是一维的   阵列

     

A [2,1] A [2,2] A [2,3] //这是另一个单维数组

     

//该集合是一个多维或二维数组。