我现在使用 Spark 中实现的 ALS
。在目录 /org/apache/spark/
中有两个不同的包 ml and mllib 。这两个包都有子文件夹 recommendation
,并且在此文件夹中包含类 ALS.scala
(mllib 还有额外的 MatrixFactorizationModel.scala)
我的问题是,ml
和 mllib
目录之间有什么区别?
例如我发现the tutorial of using ALS Apache Spark 在网络中的应用。本教程中使用了 mllib 包。我什么时候可以使用 ml 套餐?为什么我们需要两个不同的包 ml 和 mllib?
最佳答案
Spark ML Lib 现在正在重新设计。旧类位于 mllib 包中,新类位于 ml 中。新类基于 DataFrame,由于 Tungsten 优化,速度可能会更快。
通常,如果可能的话,您应该使用 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)
关于scala - Spark中ALS的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39450215/