From 6af7b43b34942c662122e3905b0724b2dd40a63f Mon Sep 17 00:00:00 2001 From: Nick Pentreath <nickp@za.ibm.com> Date: Tue, 16 May 2017 10:54:42 +0200 Subject: [PATCH] [SPARK-20553][ML][PYSPARK] Update ALS examples with recommend-all methods Update ALS examples illustrating use of "recommendForAllX" methods. ## How was this patch tested? Built and ran examples locally Author: Nick Pentreath <nickp@za.ibm.com> Closes #17950 from MLnick/SPARK-20553-update-als-examples. --- .../java/org/apache/spark/examples/ml/JavaALSExample.java | 8 ++++++++ examples/src/main/python/ml/als_example.py | 8 ++++++++ .../scala/org/apache/spark/examples/ml/ALSExample.scala | 7 +++++++ 3 files changed, 23 insertions(+) diff --git a/examples/src/main/java/org/apache/spark/examples/ml/JavaALSExample.java b/examples/src/main/java/org/apache/spark/examples/ml/JavaALSExample.java index 81970b7c81..60ef03d89d 100644 --- a/examples/src/main/java/org/apache/spark/examples/ml/JavaALSExample.java +++ b/examples/src/main/java/org/apache/spark/examples/ml/JavaALSExample.java @@ -113,7 +113,15 @@ public class JavaALSExample { .setPredictionCol("prediction"); Double rmse = evaluator.evaluate(predictions); System.out.println("Root-mean-square error = " + rmse); + + // Generate top 10 movie recommendations for each user + Dataset<Row> userRecs = model.recommendForAllUsers(10); + // Generate top 10 user recommendations for each movie + Dataset<Row> movieRecs = model.recommendForAllItems(10); // $example off$ + userRecs.show(); + movieRecs.show(); + spark.stop(); } } diff --git a/examples/src/main/python/ml/als_example.py b/examples/src/main/python/ml/als_example.py index 2e7214ed56..1672d552eb 100644 --- a/examples/src/main/python/ml/als_example.py +++ b/examples/src/main/python/ml/als_example.py @@ -55,5 +55,13 @@ if __name__ == "__main__": predictionCol="prediction") rmse = evaluator.evaluate(predictions) print("Root-mean-square error = " + str(rmse)) + + # Generate top 10 movie recommendations for each user + userRecs = model.recommendForAllUsers(10) + # Generate top 10 user recommendations for each movie + movieRecs = model.recommendForAllItems(10) # $example off$ + userRecs.show() + movieRecs.show() + spark.stop() diff --git a/examples/src/main/scala/org/apache/spark/examples/ml/ALSExample.scala b/examples/src/main/scala/org/apache/spark/examples/ml/ALSExample.scala index 868f49b16f..07b15dfa17 100644 --- a/examples/src/main/scala/org/apache/spark/examples/ml/ALSExample.scala +++ b/examples/src/main/scala/org/apache/spark/examples/ml/ALSExample.scala @@ -75,7 +75,14 @@ object ALSExample { .setPredictionCol("prediction") val rmse = evaluator.evaluate(predictions) println(s"Root-mean-square error = $rmse") + + // Generate top 10 movie recommendations for each user + val userRecs = model.recommendForAllUsers(10) + // Generate top 10 user recommendations for each movie + val movieRecs = model.recommendForAllItems(10) // $example off$ + userRecs.show() + movieRecs.show() spark.stop() } -- GitLab