如何在 Spark 中使用 Sklearn 模型进行预测?

How to do prediction with Sklearn Model inside Spark?

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

嗯,

我将在 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。收集将 return 像这样的东西:

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