Well,
我将展示 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。collect 将返回如下内容:
[(1, 2), (2, 4), (3, 6), ...]