У меня есть источник потока, и я сначала пытаюсь получить модель K-средних кластеризации.Позже я планирую загрузить эту модель в StreamingKMeans.Вот как далеко я зашел, но операция сохранения приводит к пустой папке /data.
srtLabeledPoints.foreachRDD{ rdd => {
import sparkSession.implicits._
val testTrain = rdd.randomSplit(Array(0.3, 0.7))
val test = testTrain(0)
val train = testTrain(1)
val model = kMeans.run(train.map(f => f.features))
val a = model.predict(test.map(f => f.features))
println("******************")
a.take(50).foreach(println)
val b = model.save(sparkSession.sparkContext, "/mnt/c/Users/ssss/ml/oooModel3" + a.id)
println("******************")
}
rdd.unpersist()
}
, где kmeans - это следующее
val kMeans = new org.apache.spark.mllib.clustering.KMeans()
.setK(20) //# of clusters
.setSeed(31)
Я вижу классификацию (от 0 до 19)отображается на консоли (с операцией принятия).Но / data пуста и / metadata имеет файл размером 1 Кб со следующим содержимым:
{"class":"org.apache.spark.mllib.clustering.KMeansModel","version":"2.0","k":20,"distanceMeasure":"euclidean","trainingCost":5.147088938203919E11}
Что я делаю не так, чтобы сохранить модель?