Spark的StreamingLinearRegressionWithSGD如何工作?

时间:2017-03-30 10:19:13

标签: apache-spark linear-regression apache-spark-mllib

我正在使用StreamingLinearRegressionWithSGD,它有两种方法trainOnpredictOn。此类有一个model对象,当训练数据到达trainOn参数中指定的流时,该对象会更新。

同时使用相同的模型进行预测。

我想知道如何在工人/执行者之间更新和同步模型权重。

任何链接或参考都会有所帮助。感谢。

1 个答案:

答案 0 :(得分:2)

这里没有魔力。 StreamingLinearAlgorithm keeps a mutable reference到当前GeneralizedLinearModel

trainOn uses DStream.foreachRDD to train a new model on each batch, and then updates the model。同样predictOn uses DStream.map to predict使用当前版本的model

由于Spark会为每个阶段序列化闭包,因此不需要任何额外的同步。每次计算闭包时,Spark都会使用model的当前值。

实际上相当于使用交错runpredict在驱动程序上运行循环。