前言
Spark机器学习所需要的数据结构比如逻辑回归,使用的数据结构都是向量数据,即类似[0,1,0,0,1,1,0,1]这么一个空间向量(在编程语言中也可称作为数组)。
DenseVector密集
通过数组的方式创建DenseVector
1 | # 导入DensVector |
通过工厂方式创建DenseVector
1 | # 通过MLlibVectors提供的工厂方法创建DenseVector |
SparseVector稀疏
1 | # 导入SparseVector |
通过工厂方式创建SparseVector
1 | scala> val sparseV = Vectors.sparse(7, Array(2, 3, 4), Array(1, 1, 1)) |
DenseVector互转SparseVector
1 | # DenseVector转SparseVector |
总结
SparseVector稀疏向量通过这种表现方式可以更小的节省空间,比如在很多的深度学习计算当中大部分都是稀疏数据,从而可以减少在计算过程中所占用的空间,这就是为什么Spark Mllib当中的很多计算方式都是使用SparseVector数据类型。