2016-08-22 78 views
0

我试图检索属于Spark中的特定群集的数据点。在下面的一段代码中,数据是组成的,但我实际上获得了预测的聚类。Spark:如何获取群集点(KMeans)

这里是我到目前为止的代码:

import numpy as np 
# Example data 
flight_routes = np.array([[1,3,2,0], 
          [4,2,1,4], 
          [3,6,2,2], 
          [0,5,2,1]]) 
flight_routes = sc.parallelize(flight_routes) 
model = KMeans.train(rdd=flight_routes, k=500, maxIterations=10) 

route_test = np.array([[0,2,3,4]]) 
test = sc.parallelize(route_test) 

prediction = model.predict(test) 
cluster_number_predicted = prediction.collect() 

print cluster_number_predicted # it returns [100] <-- COOL!! 

现在,我想都属于簇号100如何获得这些数据点? 我想达到什么就像给这个SO问题的答案:Cluster points after Means (Sklearn)

谢谢你提前。

+0

怎么样'filter'? – zero323

+0

你能详细说一下你的评论吗?你的意思是我应该这样做:'''prediction.filter(“CLUSTER = 100”)。show()''' – davideberdin

+0

不工作,除非你给我一个具体的例子 – davideberdin

回答

0

如果同时记录和预测(而不是愿意转换到星火ML),你可以zip RDDS:

predictions_and_values = model.predict(test).zip(test) 

和过滤算账:

predictions_and_values.filter(lambda x: x[1] == 100)