【发布时间】:2018-01-30 18:50:53
【问题描述】:
我有一个简单的 Python 应用程序。 获取有 user_id、product_id、rating 的 rating.csv 其中包含 4 M 记录,然后我使用 Spark AlS 并保存模型,然后将其加载到 matrixFactorization。
我的问题是预测用户和产品之间的评分需要超过一秒钟的时间。 我的服务器是 32 G 和 8 核。 任何建议我如何将预测时间提高到小于 100 毫秒。 以及数据集中的多条记录与预测时间的关系。
这是我正在做的事情:
spark_config = SparkConf().setAll([('spark.executor.memory', '32g'), ('spark.cores.max', '8')])
als_recommender.sc = SparkContext(conf=spark_config) #training_data is array of tulips of 4 M record
training_data = als_recommender.sc.parallelize(training_data) als_recommender.model = ALS.trainImplicit(training_data, 10, 10, nonnegative=True)
als_recommender.model.save(als_recommender.sc, "....Ameer/als_model")
als_recommender_model = MatrixFactorizationModel.load(als_recommender.sc, "....Ameer/als_model")
als_recommender_model.predict(1,2913)
【问题讨论】:
-
我们需要查看您的代码。
-
spark_config = SparkConf().setAll([('spark.executor.memory', '32g'), ('spark.cores.max', '8')]) als_recommender.sc = SparkContext(conf=spark_config) #training_data 是 4 M 记录的郁金香数组 training_data = als_recommender.sc.parallelize(training_data) als_recommender.model = ALS.trainImplicit(training_data, 10, 10, nonnegative=True) als_recommender.model.save( als_recommender.sc, "....Ameer/als_model") als_recommender_model = MatrixFactorizationModel.load(als_recommender.sc, "....Ameer/als_model") als_recommender_model.predict(1,2913);
标签: python apache-spark recommendation-engine