У меня есть фрейм данных Scala Spark (переменная df
):
id, values
"a", [0.5, 0.6]
"b", [0.1, 0.2]
...
Я пытаюсь использовать RowMatrix для эффективного вычисления парного косинусного сходства.
final case class dataRow(id: String, values: Array[Double])
val rows = df.as[dataRow].map {
row => {
Vectors.dense(row.values)
}
}.rdd
У меня следующая ошибка компиляции
Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._
В конце концов я смогу это сделать (RowMatrix требуется RDD [Vector])
val mat = new RowMatrix(rows)
У меня естьуже импортирован spark.implicits_, что я делаю не так?