【发布时间】:2016-06-10 14:16:47
【问题描述】:
以下 Spark 代码:
val model = ALS.trainImplicit(ratings = ratingsRDD,
rank = rank,
iterations = numIterations,
lambda = lambda,
alpha = alpha)
model.productFeatures.cache()
val modelSubsetRDD = new MatrixFactorizationModel(
rank = rank,
userFeatures = model.productFeatures,
productFeatures = model.productFeatures)
引发以下异常:
在 RDD 已经分配了一个之后,不能更改它的存储级别 等级
StorageLevel.MEMORY_ONLY 引发了相同的异常。
另一方面,以下代码可以正常工作:
val model = ALS.trainImplicit(ratings = ratingsRDD,
rank = rank,
iterations = numIterations,
lambda = lambda,
alpha = alpha)
val modelSubsetRDD = new MatrixFactorizationModel(
rank = rank,
userFeatures = model.userFeatures,
productFeatures = model.productFeatures)
model.userFeatures.persist(StorageLevel.MEMORY_ONLY)
model.productFeatures.persist(StorageLevel.MEMORY_ONLY)
注意到这次userFeatures 和productFeatures 被设置为模型的两个不同成员。但是,我不确定为什么会这样。
【问题讨论】:
-
如果您仍有问题,请更新您的问题。如果以下答案解决了您的问题,请将其标记为已接受。
标签: scala apache-spark machine-learning recommendation-engine