【问题标题】:Difference between RowMatrix and Matrix in Apache Spark?Apache Spark 中的 RowMatrix 和 Matrix 的区别?
【发布时间】:2016-03-12 16:09:36
【问题描述】:

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

【问题讨论】:

  • 我不知道 Java 中的任何一个类。你有完整的类名(带包)吗?
  • org.apache.spark.mllib.linalg.distributed.RowMatrix org.apache.spark.mllib.linalg.Matrix @Thilo

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


【解决方案1】:

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

  • Matrix 是代表本地矩阵的特征,这些矩阵驻留在单个机器的内存中。目前有两个基本实现:DenseMatrix 和 SparseMatrix。
  • DistributedMatrix 是一个特征,它代表 分布式矩阵 在 RDD 之上构建。 RowMatrix 是 DistributedMatrix 的子类,它以行方式存储数据,没有有意义的行排序。 DistributedMatrix 的其他实现(如IndexedRowMatrix、CoordinateMatrix 和BlockMatrix)都有自己的存储策略和特定的方法集。参见例如Matrix Multiplication in Apache Spark

【讨论】:

    【解决方案2】:

    这将归结为您正在使用的语言/框架/学科的习语,但在计算机科学中,数组是“事物”的一维“列表”,它们可以被他们引用在列表中的位置。列表中可以包含的内容之一是另一个数组,它可以让您制作数组的数组(数组的数组......),为您提供任意大尺寸的数据集。

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

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

    Array : 同质元素的集合。

    矩阵:一个简单的行和列的东西。

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

    例子

    A[2][3] :这意味着 A 是 2 个单维数组的集合 每个尺寸 3。

    A[1,1] A[1,2] A[1,3] //这是一维的 数组

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

    //集合是多维或二维数组。

    【讨论】:

    • 但我需要 RowMatrix 和 Matrix 之间的区别,而不是 Array 和 Matrix
    • 行矩阵是一个1×m的矩阵,即单行m个元素组成的矩阵。
    • 如果我使用 RowMatrix 打印行数 inputDataSet = new RowMatrix(parsedData.rdd()); System.out.println(inputDataSet.numRows()); //7 请解释一下输出
    • 对不起,我无法理解你的问题,什么是“RowMatrix”,它是你程序中的一个类吗?
    • 好的....那我怎么能解释你的东西而不了解类的结构?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 2016-06-23
    • 2016-06-05
    • 2018-08-14
    • 2017-10-13
    • 2021-11-19
    相关资源
    最近更新 更多