将带有 Vector 列的 Dataframe 转换为 Dataset - 在这种情况下使用哪种类型 class

Convert Dataframe with Vector column to Dataset - which type to be used in the case class

作为 onehot 编码器的结果,我有一个带有 矢量类型列 的数据帧。让我们将该列命名为 Vector.

使用 案例 class 示例(向量:WhichType),我想将数据帧映射到数据集:

val ds = dataframe.as[Example]

问题是:在 class 的情况下 属性 'vector' 应该是哪种类型。

我收到一条错误消息:

need an array field but got structtype:tinyint,size:int,indices:array<int,values:array>;

如果您使用的是 Spark ML,则可以使用下面导入的 Vector 类型:

import org.apache.spark.ml.linalg.Vector

case class Example(vector: Vector)