Spark Scala Kmeans - как маркировать результаты и визуализировать?

Вот некоторый код, который использует Spark ML для поиска кластеров:

val dfRaw = spark.read.option("header", "true")
   .csv("src/main/resources/input.csv")
val K = 5
val assembler = new VectorAssembler().setInputCols(Array("id", "lat", "lon")).setOutputCol("features")
val df = assembler.transform(dfRaw).select("features")    
df.show(false)    
val kmeans = new KMeans().setK(K).setSeed(1L)
val model : KMeansModel = kmeans.fit(df)  
println("cluster centers")
model.clusterCenters.foreach(println)
println("----- predictions")
val predictions = model.transform(df)
predictions.collect().foreach(println)

Входной файл состоит из следующих 4 столбцов: id, name, lat, lon

Я уверен, что я делаю некоторые глупые вещи в этом коде, но это вроде работает (я думаю). Любые советы по его улучшению приветствуются. Мне интересно, влияет ли столбец id на кластеризацию данных.

Я также изо всех сил пытаюсь понять результаты. Какой хороший способ объединить предсказания (DF of Vector) со столбцом имени dfRaw?

Кроме того, я хотел бы визуализировать результаты на некоторой бесплатной сетке или географической карте, какие-либо рекомендации?

0 ответов

Другие вопросы по тегам