2 स्पार्क वेक्टर के बीच कोसाइन समानता की गणना कैसे करें। मैं नए एमएल पैकेज का उपयोग कर रहा हूँ।
स्पार्क 2.1.1
संपादित करें:
स्पार्क रोमैट्रिक्स प्रदान करता है जिसका उपयोग समानता की गणना करने के लिए किया जा सकता है लेकिन यह स्वीकार करता है mllib.vector
एक नहीं ml.vector
.
वेक्टरों को विभिन्न पैकेजों से बदलने का कोई तरीका है? क्या कोई कार्यान्वयन है जो उपयोग करता है ml.vector
?
उत्तर:
उत्तर № 1 के लिए 1एक से कनवर्ट करने का सबसे आसान तरीका mllib
एक के लिए वेक्टर ml
वेक्टर का उपयोग करना है Vectors.fromML
विधि, देखें वेक्टर दस्तावेज। उदाहरण:
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