我现在使用Spark中实施的ALS
工作。在目录/org/apache/spark/
中有两个不同的包ml and mllib。每个包都有子文件夹recommendation
,在此文件夹中包含类ALS.scala
(mllib还有其他的MatrixFactorizationModel.scala)
我的问题是,ml
和mllib
目录之间有什么区别?
例如,我在网上找到了Apache Spark的the tutorial of using ALS。本教程中使用了包mllib。什么时候可以用ml包?为什么我们需要有两个不同的包ml和mllib?
答案 0 :(得分:3)
Spark ML Lib现在正在重做。旧类采用mllib包,新的以ml为单位。新类基于DataFrames,并且由于钨优化而可能更快。
一般情况下,如果可能的话,你应该使用ml包,因为将来不推荐使用mllib包。
编辑:我没有完整教程的任何链接,但这里是我使用的ALS代码:
val als = new ALS()
.setUserCol("userCol")
.setItemCol("itemCol")
.setRank(rank)
.setMaxIter(iterationNumber)
.setRegParam(lambda)
val model = als.fit(trainingDataFrame)
val predictions = model.transform (dataFrameToPredict)