如何使用Spark内的Sklearn模型进行预测?

时间:2017-03-19 14:15:27

标签: python apache-spark scikit-learn pyspark apache-spark-mllib

我使用sklearn在python中训练了一个模型。我们如何使用相同的模型加载Spark并在spark RDD上生成预测?

1 个答案:

答案 0 :(得分:9)

那么,

我将在Sklearn中展示线性回归的示例,并向您展示如何使用它来预测Spark RDD中的元素。

首先使用sklearn示例训练模型:

# Create linear regression object
regr = linear_model.LinearRegression()

# Train the model using the training sets
regr.fit(diabetes_X_train, diabetes_y_train)

这里我们只是适合,你需要预测RDD中的每个数据。

在这种情况下,您的RDD应该是带有X的RDD,如下所示:

rdd = sc.parallelize([1, 2, 3, 4])

所以你首先需要播放你的sklearn模型:

regr_bc = self.sc.broadcast(regr)

然后您可以使用它来预测您的数据:

rdd.map(lambda x: (x, regr_bc.value.predict(x))).collect()

所以RDD中的元素是你的X,第二个元素将是你预测的Y.收集将返回这样的东西:

[(1, 2), (2, 4), (3, 6), ...]