apache-spark - 为什么DataFrame Row.getAs [Vector]失败?

标签 apache-spark dataframe spark-dataframe

我有一个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))

有关EncoderDataset的更多信息,您可以阅读this SO question

关于apache-spark - 为什么DataFrame Row.getAs [Vector]失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42045658/

相关文章:

amazon-web-services - EmrActivity 的输入/输出 - AWS Data Pipeline

Python 选择数据框中每组前 3 个值的数据

scala - 如何选择以公共(public)标签开头的所有列

python - 从 RDD 中的单词过滤 Spark 数据框中的行

apache-spark - 如何控制使用 partitionBy 时生成的 parquet 文件的数量

python - 没有名为 graphframes Jupyter Notebook 的模块

apache-spark - Databricks notebook time out error when calling other notebooks : com. databricks.WorkflowException : java.net.SocketTimeoutException: 读取超时

python - 如何在 PySpark 中有效地按值排序?

python - Pandas - 行是否低于具有列值和相同 id 的行

python - pandas 如何存储使用 `drop_duplicates` 删除的行?