PySpark:将PythonRDD附加/合并到PySpark数据帧

时间:2016-09-16 17:55:48

标签: python apache-spark pyspark apache-spark-sql apache-spark-mllib

我使用以下代码创建聚类模型,然后将每条记录分类到某个群集:

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

1 个答案:

答案 0 :(得分:1)

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

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

一般情况下,如果不可能zip是工作的正确工具:

rdd.zip(model.predict(rdd))