Spark Scala Kmeans - как маркировать результаты и визуализировать? - PullRequest
0 голосов
/ 12 сентября 2018

Вот код, который использует 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?

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

...