将K-means集群信息Apache Spark解压缩为JSON

时间:2016-01-13 16:43:34

标签: java apache-spark apache-spark-mllib

我将在Spark上实现k-means。但我需要存储在JSON中的集群信息。怎么办呢?

注意:Python或Scala也可以。

提前感谢!

1 个答案:

答案 0 :(得分:1)

KMeansModel.clusterCenters只是一个本地数据结构(Scala / Java中的Array[Vector],Python中的NumPy数组列表)。这意味着您可以使用标准JSON处理库。例如,使用Python:

import json
json.dumps({"centers": [list(x) for x in clusters.clusterCenters]})

如果JSONL可以接受,您还可以并行化中心并使用DataFrameWriter.write.json

val clusters: org.apache.spark.mllib.clustering.KMeansModel = ???
sc.parallelize(clusters.clusterCenters.zipWithIndex, 1)
  .toDF("center", "id")
  .write.json("centers.jsonl")