无法将 coldStartStrategy 设置为 pyspark.mllib.recommendation.ALS 模型

Cannot set coldStartStrategy to pyspark.mllib.recommendation.ALS model

我正在使用 pyspark (spark 2.4.4) 我正在尝试对 ALS 推荐模型使用 coldStartStrategy 选项,但这对我不起作用。我试过这个(来自 2.4.0 文档:https://spark.apache.org/docs/2.4.0/api/python/pyspark.ml.html#pyspark.ml.recommendation.ALS):

from pyspark.mllib.recommendation import ALS
als = ALS(maxIter=5, regParam=0.01,coldStartStrategy="drop")

这是我遇到的错误:

TypeError: object() takes no parameters

我还尝试使用 setter 创建一个空对象,如下所示:

als = ALS()
als.setColdStartStrategy('drop')

这是我遇到的错误:

AttributeError: 'ALS' object has no attribute 'setColdStartStrategy'

ALS 构造器不带任何参数,ALS class 只有三种方法:mor、train 和 trainImplicit 没有人带 coldStartStrategy 参数。即使是 ALS Class 的实例,我也浏览了她所有的方法,也没有人接受这个参数。 我也导航到 2.2.0 spark 文档 (https://spark.apache.org/docs/2.2.0/api/python/pyspark.ml.html#pyspark.ml.recommendation.ALS) 也是同样的问题。

我也尝试训练模型,然后为测试阶段设置 coldStartStrategy 参数

model = ALS.train(rdd_train, rank, numIterations)

但我也无法找到这里提到的 setParams 方法:https://spark.apache.org/docs/latest/api/python/_modules/pyspark/ml/recommendation.html

问题是由导入引起的,似乎从 pyspark.mllib 导入的 ALS 模型与从 pyspark.ml 导入的 ALS 不同,通过更改导入我修复了这个错误。 结论:我只是从 :

from pyspark.mllib.recommendation import ALS

 from pyspark.ml.recommendation import ALS