考虑到以下因素:
from pyspark import SparkContext, SparkConf
from pyspark.mllib.recommendation import ALS, Rating
r1 = (1, 1, 1.0)
r2 = (1, 2, 2.0)
r3 = (2, 1, 2.0)
ratings = sc.parallelize([r1, r2, r3])
model = ALS.trainImplicit(ratings, 1, seed=10)
res = model.recommendProductsForUsers(2)
我想计算每个用户的前k个产品。一般来说,用户和产品可能很多,创建RDD来与推荐的产品一起使用会非常昂贵。在
根据Spark version 1.5.0recommendProductsForUsers
应该做的工作。但是,我得到了以下错误:
事实上,在列出matrixFactorizationModel的方法时,recommendProductsForUsers
不会出现:
print dir(model)
['__class__', '__del__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_java_loader_class', '_java_model', '_load_java', '_sc', 'call', 'load', 'predict', 'predictAll', 'productFeatures', 'rank', 'recommendProducts', 'recommendUsers', 'save', 'userFeatures']
你看的文件不对。一个简单的事实是,某些操作是在Scala或javaapi中实现的,这并不意味着它暴露在PySpark中。如果您选中PySpark 1.5 API docs,您将看到它没有提供请求的方法。在
在pyspark1.6中引入了^{} 和{a3}。在
相关问题 更多 >
编程相关推荐