PySpark StandardScaler 在双列上抛出错误

PySpark StandardScaler throwing error on double column

我有一个 DataFrame,其中包含一个名为 value 的列,其架构类型如下:

(...)
|-- value: double (nullable = true)
(...)

当我尝试拟合StandardScaler时,如:

scaler = StandardScaler(inputCol="mean",
                        outputCol="mean_standardized",
                        withStd=True, withMean=False)
scaler.fit(df)

它抛出以下错误:

IllegalArgumentException: 'requirement failed: Column value must be of type struct<type:tinyint,size:int,indices:array<int>,values:array<double>> but was actually double.'

这似乎是列的 double 类型有问题,StandardScaler 的预期列类型是什么?

我正在使用 Spark 2.4.3 和 Hadoop 2.7。

我找到了问题的答案。 StandardScaler 需要类型 Vector 才能工作。您只需要将列包装到 Vector.