如何在spark mlib中为ALS推荐器设置起点?

时间:2018-12-22 00:29:09

标签: apache-spark-mllib recommender-systems

我正在使用此代码获取ALS建议:

SparkSession spark = SparkSession
        .builder()
        .appName("SomeAppName")
        .config("spark.master", "local")
        .getOrCreate();
JavaRDD<Rating> ratingsRDD = spark
        .read().textFile(args[0]).javaRDD()
        .map(Rating::parseRating);
Dataset<Row> ratings = spark.createDataFrame(ratingsRDD, Rating.class);
ALS als = new ALS()
        .setMaxIter(1)
        .setRegParam(0.01)
        .setUserCol("userId")
        .setItemCol("movieId")
        .setRatingCol("rating");
ALSModel model = als.fit(ratings);
model.setColdStartStrategy("drop");
Dataset<Row> rowDataset = model.recommendForAllUsers(50);

我想为上次运行的用户和项目重用特征向量。如何将这些值设置为初始点?

1 个答案:

答案 0 :(得分:0)

如果您想节省时间并在每次运行该应用程序时跳过培训步骤,则可以使用以下方法简单地保存经过培训的同伴:

model.save(jsc.sc(), "saved_model");

并将其加载到另一个脚本中。

更多信息在这里: https://spark.apache.org/docs/2.2.0/mllib-collaborative-filtering.html