Spark mllib教程
作者: 时海
Local Vector

Vector下标类型为integer,从0开始

Vector值类型为Double

Spark MLlib支持两种类型的 Vector: 密集型Vector、稀疏型Vector

1、密集型Vector

  • val dv: Vector = Vectors.dense(1.0, 0.0, 3.0)
表示向量(1.0,0.0,3.0)

2、稀疏型Vector

有以下两种表示方式

(1)三个参数分别表示: 向量长度、下标列表、值列表。其中下标列表和值列表元素一一对应

  • val sv1: Vector = Vectors.sparse(3, Array(0, 2), Array(1.0, 3.0))
表示:a[0]=1.0,a[2]=3.0

(2)两个参数分别表示:向量长度、(下标,值)Pair 列表  
  • val sv2: Vector = Vectors.sparse(3, Seq((0, 1.0), (2, 3.0)))

表示向量(1.0,0.0,3.0)

完整代码
import org.apache.spark.sql.SparkSession

object Example {

  def main(args: Array[String]) {
    val spark = SparkSession
      .builder
      .appName(s"${this.getClass.getSimpleName}")
      .master("local[4]")
      .getOrCreate()
    val sc = spark.sparkContext

    import org.apache.spark.mllib.linalg.{Vector, Vectors}

    // Create a dense vector (1.0, 0.0, 3.0).
    val dv: Vector = Vectors.dense(1.0, 0.0, 3.0)
    // Create a sparse vector (1.0, 0.0, 3.0) by specifying its indices and values corresponding to nonzero entries.
    val sv1: Vector = Vectors.sparse(3, Array(0, 2), Array(1.0, 3.0))
    // Create a sparse vector (1.0, 0.0, 3.0) by specifying its nonzero entries.
    val sv2: Vector = Vectors.sparse(3, Seq((0, 1.0), (2, 3.0)))

    spark.stop();
  }
}

标签: vector、3.0、1.0、vectors、sparse
一个创业中的苦逼程序员
  • 回复
隐藏