我有一个Spark DataFrame,具有两列类型为String和org.apache.spark.ml.linalg.SparseVector的列,并且工作正常:
data.map(r => r(1).asInstanceOf[Vector])
但是getAs
data.map(r => r.getAs[Vector](1))
失败于
错误:找不到用于存储在数据集中的类型的编码器。原始
类型(整数,字符串等)和产品类型(案例类)是
通过导入spark.implicits._提供支持
其他类型将在将来的版本中添加。
请您能解释为什么?
最佳答案
试试这个:data.rdd.map(r => r.getAs[Vector](1))
有关Encoder
和Dataset
的更多信息,您可以阅读this SO question
关于apache-spark - 为什么DataFrame Row.getAs [Vector]失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42045658/