Spark mllib教程
Vector下标类型为integer,从0开始
Vector值类型为DoubleSpark MLlib支持两种类型的 Vector: 密集型Vector、稀疏型Vector
1、密集型Vector
表示向量(1.0,0.0,3.0)
2、稀疏型Vector
有以下两种表示方式
(1)三个参数分别表示: 向量长度、下标列表、值列表。其中下标列表和值列表元素一一对应
表示:a[0]=1.0,a[2]=3.0 (2)两个参数分别表示:向量长度、(下标,值)Pair 列表
表示向量(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();
}
}