为什么每次在spark中运行相同的查询后结果都不同?

时间:2017-03-27 07:10:44

标签: apache-spark-mllib collaborative-filtering

我在mllib中使用协同过滤来训练我的火花星团上的ALS模型。我使用python api。

als = ALS(maxIter=10, rank=10, regParam=0.01, userCol="member_srl", itemCol="productid", ratingCol="rating")
model = als.fit(training)
pred = model.transform(test)

但是当我查看pred时,它似乎正在改变。 如果我运行查询pred.count(),结果不稳定,稍有差异。那么为什么结果总是在变化。

例如:

pred.count()

4219257

再次运行:

pred.count()

4220723

再次运行:

pred.count()

4222431

1 个答案:

答案 0 :(得分:0)

ALS是一种使用随机数初始化的算法。所以预计会有一点变化。尝试使用明确的种子编号,例如:

als.setSeed(123)