Spark数据类型SparseMatrix

SparseMatrix
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))

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

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

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

这样就容易理解多了。
--------------------- 
作者:Running_you 
来源:CSDN 
原文:https://blog.csdn.net/sinat_29508201/article/details/54089771 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值