大数据系列 | Spark MLlib矩阵基本数据类型

Spark MLlib矩阵(基本数据类型)

⼀、本地矩阵(Local Matrix):

本地矩阵具有整型的⾏、列索引值和双精度浮点型的元素值,它存储在单机上。MLlib⽀持稠密矩阵DenseMatrix和稀疏矩阵Sparse Matrix两种本地矩阵,稠密矩阵将所有元素的值存储在⼀个列优先(Column-major)的双精度型数组中,⽽稀疏矩阵则将⾮零元素以列优先的CSC(Compressed SparseColumn)模式进⾏存储。

scala>import org.apache.spark.mllib.linalg.{
   Matrix, Matrices}
import org.apache.spark.mllib.linalg.{
   Matrix, Matrices}
// 创建⼀个3⾏2列的稠密矩阵[ [1.0,2.0], [3.0,4.0], [5.0,6.0] ]
// 请注意,这⾥的数组参数是列先序的!
scala> val dm: Matrix = Matrices.dense(3, 2, Array(1.0, 3.0, 5.0, 2.0,
4.0, 6.0))
dm: org.apache.spark.mllib.linalg.Matrix =
1.0 2.0
3.0 4.0
5.0 6.0


// 创建⼀个3⾏2列的稀疏矩阵[ [9.0,0.0], [0.0,8.0], [0.0,6.0]]
// 第⼀个数组参数表示列指针,即每⼀列元素的开始索引值+⾮0元素
总数
// 第⼆个数组参数表示⾏索引,即对应的元素是属于哪⼀⾏
// 第三个数组即是按列先序排列的所有⾮零元素,通过列指针和⾏索引即可判断每个元素所在的位置
scala> val sm: Matrix = Matrices.sparse(3, 2, Array(0, 1, 3), Array(0, 1,
2), Array(9, 8, 6))
sm: org.apache.spark.mllib.linalg.Matrix =
3 x 2 CSCMatrix
(0,0) 9.0
(2,1) 6.0
(1,1) 8.0

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值