我想知道Apache Spark中可用的RowMatrix和Matrix类之间的基本区别。
答案 0 :(得分:4)
这里有一个更精确的问题是mllib.linalg.Matrix
和mllib.linalg.distributed.DistributedMatrix
之间的区别。
Matrix
是表示本地矩阵的特征,它位于单个计算机的内存中。目前有两种基本实现:DenseMatrix
和SparseMatrix
。DistributedMatrix
是一种在RDD
之上代表分布式矩阵构建的特征。 RowMatrix
是DistributedMatrix
的子类,它以行方式存储数据,而没有有意义的行排序。还有DistributedMatrix
的其他实现(如IndexedRowMatrix
,CoordinateMatrix
和BlockMatrix
),每个实现都有自己的存储策略和特定的方法集。请参阅示例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] //这是另一个单维数组
//该集合是一个多维或二维数组。