2016-01-13 29 views
-1

我将在Spark上实现k-means。但是我需要以JSON格式存储集群信息。如何做呢?将K-means集群信息Apache Spark提取到JSON中

注意:Python或Scala也可以。

提前致谢!

+2

您复制了示例页面上的代码。我们应该怎么做呢? – eliasah

+1

看看模型出口api: https://spark.apache.org/docs/1.6.0/mllib-pmml-model-export.html –

+0

@eliasah对不起,我是新的火花和所有。我会实现与示例代码相同的k-mean,并且我们在最后得到的那个集群,我需要JSON中的信息并将其存储在文件中 – insomniac

回答

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")