如何在 Scala 中将 Spark Dense Vector 转换为 String 再转换回 Vector?

How to convert Spark Dense Vector to String and back to Vector in Scala?

我有 Dense Vector,我想将向量转换为字符串(以保存 CSV)并在加载时将字符串转换回 Dense Vector。

更多详情

val dense_vec = Vectors.dense(1.0, 2.0, 3.0)
dense_vec: org.apache.spark.mllib.linalg.Vector = [1.0,2.0,3.0]

val str_dense_vec = dense_vec.toString
str_dense_vec: String = [1.0,2.0,3.0]

我想将 str_dense_vec 类型 String 转换为 org.apache.spark.mllib.linalg.Vector

您可以从字符串创建双精度数组,然后使用 org.apache.spark.mllib.linalg.Vectordense 方法。

Vectors.dense(str_dense_vec.drop(1).dropRight(1).split(',').map(_.toDouble))

link api.