【问题标题】:PySpark StandardScaler throwing error on double columnPySpark StandardScaler 在双列上抛出错误
【发布时间】:2019-07-14 22:47:51
【问题描述】:

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

【问题讨论】:

  • 你能分享一个你正在尝试使用的示例 DataFrame 吗?看起来你需要一个结构类型。
  • 谢谢,我找到了问题,StandardScaler 需要Vector

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


【解决方案1】:

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

【讨论】:

  • 您好,您能否在此处发布您的解决方案代码并将其标记为已解决。我也有同样的问题。
猜你喜欢
  • 2018-02-27
  • 2021-01-20
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
相关资源
最近更新 更多