Scala, отображение списка в разреженный вектор - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть СДР

Array[(String, Iterable[(Int, Double)])]

с элементами, похожими на

(000267537-01,List((25,0.01), (35,120.0), (26,2.0), (38,130.0), (21,45.0), (54,180.0), (39,10.0)))

Теперь с постоянным числом 56 я хочу преобразовать часть списка СДР в список разреженный вектор. Итак, я сделал:

val my_rslt = my_rdd.map(x => (x._1, Vectors.sparse(56, x._2)))

, затем я получил сообщение об ошибке:

<console>:37: error: overloaded method value sparse with alternatives:
  (size: Int,elements: java.lang.Iterable[(Integer, java.lang.Double)])org.apache.spark.mllib.linalg.Vector <and>
  (size: Int,elements: Seq[(Int, scala.Double)])org.apache.spark.mllib.linalg.Vector
 cannot be applied to (Int, Iterable[(Int, scala.Double)])
       val my_rslt = my_rdd.map(x => (x._1, Vectors.sparse(56, x._2)))
                                                    ^

Так что же здесь не так? Как работает «Vectors.sparse»?

1 Ответ

0 голосов
/ 10 февраля 2020

После многократных попыток я понял, что мне следует сделать:

val my_rslt = my_rdd.map(x => (x._1, Vectors.sparse(56, x._2.toList)))

Хотя я все еще не понимаю, как применить "toList" к списку.

...