我正在尝试使用python实现spark的kmean算法,我使用位于库中的python代码http://spark.apache.org/docs/latest/mllib-clustering.html#k-means 代码正在工作,但为了制作绘图,我需要操作“sameModel = KMeansModel.load(sc, "KMeansModel2")”中的对象,我不知道该怎么做..我应该在 csv 中加载 sc文件 ?请帮忙!
from __future__ import print_function
# $example on$
from numpy import array
from math import sqrt
# $example off$
from pyspark import SparkContext
# $example on$
from pyspark.mllib.clustering import KMeans, KMeansModel
# $example off$
if __name__ == "__main__":
sc = SparkContext(appName="KMeansExample") # SparkContext
# $example on$
# Load and parse the data
data = sc.textFile("kmeans_data2.txt")
parsedData = data.map(lambda line: array([float(x) for x in line.split(' ')]))
# Build the model (cluster the data)
clusters = KMeans.train(parsedData, 2, maxIterations=10, initializationMode="random")
# Evaluate clustering by computing Within Set Sum of Squared Errors
def error(point):
center = clusters.centers[clusters.predict(point)]
return sqrt(sum([x**2 for x in (point - center)]))
WSSSE = parsedData.map(lambda point: error(point)).reduce(lambda x,y:x + y)
print("Within Set Sum of Squared Error = " + str(WSSSE))
# Save and load model
clusters.save(sc, "KMeansModel2")
sameModel = KMeansModel.load(sc, "KMeansModel2")
print (sameModel)
# $example off$
sc.stop()
如果您想使用该模式(预测),您需要在正在运行的 Spark 上下文中执行此操作(例如,您可以 在 Jupyter Notebook 中进行设置)