• Spark数据类型SparseMatrix 解释


    http://blog.csdn.net/sinat_29508201/article/details/54089771

    parseMatrix

    Spark的mllib包中提供了机器学习的两种基本数据类型: DenseMatrix(稠密)和 SparseMatrix(稀疏),在初始化对象的时候可以使用Matrices伴生对象产生,先看下示例代码:

    import org.apache.spark.mllib.linalg.{Matrix, Matrices}
    
    // Create a dense matrix ((1.0, 2.0), (3.0, 4.0), (5.0, 6.0))
    val dm: Matrix = Matrices.dense(3, 2, Array(1.0, 3.0, 5.0, 2.0, 4.0, 6.0))
    
    // Create a sparse matrix ((9.0, 0.0), (0.0, 8.0), (0.0, 6.0))
    val sm: Matrix = Matrices.sparse(3, 2, Array(0, 1, 3), Array(0, 2, 1), Array(9, 6, 8))

    import org.apache.spark.mllib.linalg.{Matrix, Matrices}

    // Create a dense matrix ((1.0, 2.0), (3.0, 4.0), (5.0, 6.0))

    val dm: Matrix = Matrices.dense(3, 2, Array(1.0, 3.0, 5.0, 2.0, 4.0, 6.0))

    // Create a sparse matrix ((9.0, 0.0), (0.0, 8.0), (0.0, 6.0))

    val sm: Matrix = Matrices.sparse(3, 2, Array(0, 1, 3), Array(0, 2, 1), Array(9, 6, 8))

    对于DenseMatrix的初始化参数不难理解,定义行数,列数以及所有元素值,(注,列式优先存储),然后并产生DenseMatrix矩阵;

    而对于SparseMatrix的初始化参数有点难理解,并非是我们常见的三元组存储方式,可以先看看源码的定义:

    这里写图片描述

    关于参数numRows(行数),numCols(列数),rowIndices(行向索引),values(元素值),这些好理解,难懂的是colPtrs参数,这里通过一图来解释这个参数意义所在。

    这里写图片描述

    这样就容易理解多了。

  • 相关阅读:
    用react重构个人网站 3-23
    用react重构个人网站 3-22
    React官方文档笔记之快速入门
    .Net多线程编程—同步机制
    .Net多线程编程—Parallel LINQ、线程池
    .Net多线程编程—并发集合
    .Net多线程编程—任务Task
    【翻译】MongoDB指南/聚合——聚合管道
    【翻译】MongoDB指南/CRUD操作(四)
    【翻译】MongoDB指南/CRUD操作(三)
  • 原文地址:https://www.cnblogs.com/zhangbojiangfeng/p/7456961.html
Copyright © 2020-2023  润新知