如何从Scala密集向量中提取两个数组

时间:2018-07-07 14:11:51

标签: scala apache-spark-mllib

我的向量很密集。

scala> model.coefficients 
res1: org.apache.spark.ml.linalg.Vector = (891,[11,20,25,27,28,50],[0.35686135501086036,8.194306936725383E-6,7.62720047518819E-6,9.354557510460644E-4,5.633054601656321E-4,2.5641516558812987E-5])

有人可以建议一种从该向量创建两个数组的方法吗?

数组1:索引数组

res2: Array[Int] = Array(11,20,25,27,28,50)  

数组2:值的数组

res3: Array[Double] = Array(0.35686135501086036,8.194306936725383E-6,7.62720047518819E-6,9.354557510460644E-4,5.633054601656321E-4,2.5641516558812987E-5)

您的帮助将不胜感激:

(我的最终目标是获取模型系数并使用索引数组选择列名称。例如:数组索引11可以是产品A的销售,数组索引20可以是客户年龄,依此类推)

1 个答案:

答案 0 :(得分:0)

我相信您拥有的是SparseVector。您可以按以下方式使用方法indicesvalues

Object.defineProperty(navigator, "webdriver", {value: false})