Skip to main content
 首页 » 编程设计

python之PySpark:将 PythonRDD 附加/合并到 PySpark 数据框

2025年04月02日39yjmyzz

我正在使用以下代码创建聚类模型,然后将每条记录分类到特定的聚类中:

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?谢谢!

请您参考如下方法:

pyspark.mllib.clustering.KMeansModel 是可直接在 PySpark 转换中使用的罕见模型之一,因此您可以简单地使用 map 和 predict:

rdd.map(lambda point: (model.predict(point), point)) 

在一般情况下,zip 是完成这项工作的正确工具:

rdd.zip(model.predict(rdd))