我使用以下代码创建聚类模型,然后将每条记录分类到某个群集:
from pyspark.mllib.clustering import KMeans
from pyspark.mllib.linalg import Vectors
spark_df = sqlContext.createDataFrame(pandas_df)
rdd = spark_df.rdd.map(lambda data: Vectors.dense([float(c) for c in data]))
model = KMeans.train(rdd, 2, maxIterations=10, initializationMode="random")
result = model.predict(red)
如何将预测结果作为附加列附加回spark_df?谢谢!
答案 0 :(得分:1)
pyspark.mllib.clustering.KMeansModel
是可以在PySpark转换中直接使用的罕见模型之一,因此您可以map
使用predict
:
rdd.map(lambda point: (model.predict(point), point))
一般情况下,如果不可能zip
是工作的正确工具:
rdd.zip(model.predict(rdd))