【发布时间】:2020-01-27 17:48:09
【问题描述】:
我有一个包含 id 和 features 列的 parquet 文件,我想应用 pca 算法。
val dataset = spark.read.parquet("/usr/local/spark/dataset/data/user")
val features = new VectorAssembler()
.setInputCols(Array("id", "features" ))
.setOutputCol("features")
val pca = new PCA()
.setInputCol("features")
.setK(50)
.fit(dataset)
.setOutputCol("pcaFeatures")
val result = pca.transform(dataset).select("pcaFeatures")
pca.save("/usr/local/spark/dataset/out")
但我有这个例外
java.lang.IllegalArgumentException:要求失败:列特征必须是 org.apache.spark.ml.linalg.VectorUDT@3bfc3ba7 类型,但实际上是 ArrayType(DoubleType,true)。
【问题讨论】:
-
你能告诉我们
dataset.printSchema的结果吗?
标签: scala apache-spark