I have a Spark DataFrame with two columns of types String and org.apache.spark.ml.linalg.SparseVector and this works fine:
data.map(r => r(1).asInstanceOf[Vector])
But getAs
data.map(r => r.getAs[Vector](1))
fails with
error: 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._ Support for serializing other types will be added in future releases.
Please can you explain why?