如何计算2 Spark Vector之间的余弦相似度。我正在使用新的ml包。
Spark 2.1.1
修改
Spark提供的RowMatrix可用于计算相似度,但它接受mllib.vector
而不是ml.vector
。
有没有办法从不同的包中转换Vector?
是否有使用ml.vector
的实现?
答案 0 :(得分:1)
从mllib
向量转换为ml
向量的最简单方法是使用Vectors.fromML
方法,请参阅Vectors documentation。例如:
val mlVector = org.apache.spark.ml.linalg.Vectors.dense((Array(1.0,2.0,3.0)))
println(mlVector.getClass())
val mllibVector = org.apache.spark.mllib.linalg.Vectors.fromML(mlVector)
println(mllibVector.getClass())
给出一个输出:
class org.apache.spark.ml.linalg.DenseVector
class org.apache.spark.mllib.linalg.DenseVector