I work now with
Spark ML Lib is being reworked now. Old classes are in mllib packages, new in ml. New classes are basing on DataFrames and could be faster due to Tungsten optimisation.
Generally you should use ml package if it is possible, as in the future mllib package will be deprecated and removed.
Edit: I don't have any link to full tutorial, but here is ALS code used by me:
val als = new ALS() .setUserCol("userCol") .setItemCol("itemCol") .setRank(rank) .setMaxIter(iterationNumber) .setRegParam(lambda) val model = als.fit(trainingDataFrame) val predictions = model.transform (dataFrameToPredict)