计算余弦相似度火花java

时间:2017-05-19 15:00:29

标签: java apache-spark cosine-similarity

如何计算2 Spark Vector之间的余弦相似度。我正在使用新的ml包。

Spark 2.1.1

修改

Spark提供的RowMatrix可用于计算相似度,但它接受mllib.vector而不是ml.vector

有没有办法从不同的包中转换Vector? 是否有使用ml.vector的实现?

1 个答案:

答案 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