我有一个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结合使用。
答案 0 :(得分:0)
我找到了问题的答案。 StandardScaler
需要类型Vector
才能正常工作。您只需要将列包装到Vector
中即可。