Я хочу применить алгоритм KNN. У меня есть два столбца: id
и features
> KNN.printSchema
root
|-- id: int (nullable = true)
|-- features: double (nullable = true)
Разделить мои данные на обучение и тестирование
val training = spark.read.parquet("/usr/local/spark/dataset/data/user")
val df = training.map(r => (Vectors.dense(r.getAs[Seq[Double]]("features").toArray),r.getAs[Integer]("id"))).toDF("features","id")
val assembler = new VectorAssembler().setInputCols(Array("id","features")).setOutputCol("feature")
val data = assembler.transform(df)
val splits = df.randomSplit(Array(0.8, 0.2), seed = 1234L)
val (trainingData, testData) = (splits(0), splits(1))
И модель здания
val knnModel = knn.fit(trainingData)
val predicted = knnModel.transform(testData)
predicted.show()
Но которая вызывает эту ошибку:
java .lang.IllegalArgumentException: поле "label" не существует.
Любая помощь будет оценена.