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