如何在Spark中指定ALS工作线程数?

时间:2018-12-10 15:51:20

标签: java apache-spark apache-spark-mllib

我使用以下简单代码从命令行Java应用计算推荐:

    SparkSession spark = SparkSession
            .builder()
            .appName("SomeAppName")
            .config("spark.master", "local")
            .config("spark.executor.instances",1) // ??
            .config("spark.executor.cores",3) // ??
            .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);

但是此代码仅使用100%的CPU(在其他应用程序中观察到800%的CPU使用率),如何正确增加线程数?

0 个答案:

没有答案