小编Jon*_*Jon的帖子

如何在 PySpark ALS 中使用长用户 ID

我尝试在 PySpark MLlib (1.3.1) 的 ALS 模型中使用长用户/产品 ID,但遇到了问题。这里给出了代码的简化版本:

from pyspark import SparkContext
from pyspark.mllib.recommendation import ALS, Rating

sc = SparkContext("","test")

# Load and parse the data
d = [ "3661636574,1,1","3661636574,2,2","3661636574,3,3"]
data = sc.parallelize(d)
ratings = data.map(lambda l: l.split(',')).map(lambda l: Rating(long(l[0]), long(l[1]), float(l[2])) )

# Build the recommendation model using Alternating Least Squares
rank = 10
numIterations = 20
model = ALS.train(ratings, rank, numIterations)
Run Code Online (Sandbox Code Playgroud)

运行此代码会产生 a java.lang.ClassCastException,因为该代码正在尝试将长整型转换为整数。查看源代码, Spark 中的ml ALS 类允许使用长用户/产品 ID,但mllib ALS 类强制使用整数。

问题:是否有解决方法可以在 PySpark …

apache-spark pyspark apache-spark-mllib

3
推荐指数
1
解决办法
2303
查看次数

标签 统计

apache-spark ×1

apache-spark-mllib ×1

pyspark ×1