一,Mllib的数据格式
1,本地向量
本地向量是存储在本地节点上的,其基本数据类型是Vector,其有两个子集,分别是密集的与稀疏的,我们一般使用Vectors工厂类来实现。如:
Vectors.dese(1.0,2.0,3.0)
Vectors.sparse(3,(0,1),(1,2),(2,3))
2, 标签数据
val pos = LabeledPoint(1.0, Vectors.dense(1.0, 0.0, 3.0))
3,本地矩阵
本地矩阵是存储与单台机器上的,有整类型的row,列索引,double类型的值。Mllib支持密集矩阵,其输入值按照列column-major顺序存储在单个double数组中。稀疏矩阵是其非零值按照column-major顺序以压缩稀疏列(CSC)格式存储。
如下面的密集矩阵
密集矩阵的存储方式下,表现为:[1.0, 3.0, 5.0, 2.0, 4.0, 6.0],矩阵大小为(3, 2)
本地矩阵的基类是Matrix,有两个实现:DenseMatrix和SparseMatrix。用工厂方法来创建本地矩阵。请记住,Mllib中的本地矩阵按照column-major的顺序存储。
import org.apache.spark.mllib.linalg.{Matrix, Matrices}
// Create a dense matrix (