在Spark

时间:2016-09-12 12:22:06

标签: scala apache-spark

我现在使用Spark中实施的ALS工作。在目录/org/apache/spark/中有两个不同的包ml and mllib。每个包都有子文件夹recommendation,在此文件夹中包含类ALS.scala(mllib还有其他的MatrixFactorizationModel.scala)

我的问题是,mlmllib目录之间有什么区别? 例如,我在网上找到了Apache Spark的the tutorial of using ALS。本教程中使用了包mllib。什么时候可以用ml包?为什么我们需要有两个不同的包ml和mllib?

1 个答案:

答案 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)