PySpark StandardScaler在双列上引发错误

时间:2019-07-14 14:31:12

标签: apache-spark pyspark apache-spark-mllib

我有一个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结合使用。

1 个答案:

答案 0 :(得分:0)

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