diff --git a/pom.xml b/pom.xml
index 8169ff7..b82bb07 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,6 +12,8 @@
UTF-8
+ 7
+ 7
diff --git a/src/test/java/nearsoft/academy/bigdata/recommendation/MovieRecommender.java b/src/test/java/nearsoft/academy/bigdata/recommendation/MovieRecommender.java
new file mode 100644
index 0000000..7f7f788
--- /dev/null
+++ b/src/test/java/nearsoft/academy/bigdata/recommendation/MovieRecommender.java
@@ -0,0 +1,111 @@
+
+package nearsoft.academy.bigdata.recommendation;
+
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import org.apache.mahout.cf.taste.common.TasteException;
+import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
+import org.apache.mahout.cf.taste.impl.neighborhood.ThresholdUserNeighborhood;
+import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
+import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
+import org.apache.mahout.cf.taste.model.DataModel;
+import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
+import org.apache.mahout.cf.taste.recommender.RecommendedItem;
+import org.apache.mahout.cf.taste.recommender.UserBasedRecommender;
+import org.apache.mahout.cf.taste.similarity.UserSimilarity;
+
+/**
+ * @author carlo
+ */
+public class MovieRecommender {
+
+ private UserBasedRecommender recommender;
+ private HashMap users = new HashMap();
+ private HashBiMap products = HashBiMap.create();
+ private int totalReviews = 0, totalUsers = 0, totalProducts = 0;
+
+ // Constructor
+ public MovieRecommender(String path) throws IOException, TasteException {
+ inicialize(path);
+ }
+
+ private void inicialize(String path) throws FileNotFoundException, IOException, TasteException {
+ String pathWriter = "D:/Charlitos/Nearsoft/programs/Semana_3/movies.csv";
+ File file = new File(path);
+ BufferedReader br = new BufferedReader(new FileReader(file));
+ BufferedWriter wr = new BufferedWriter(new FileWriter(pathWriter));
+
+ String userId = "", productId = "", score, line;
+ int currentUser = 0, currentProduct = 0;
+
+ while ((line = br.readLine()) != null) {
+ switch(line.split(" ")[0]) {
+ case "product/productId:":
+ productId = line.split(" ")[1];
+ if (!products.containsKey(productId)) {
+ totalProducts++;
+ products.put(productId,totalProducts);
+ currentProduct = totalProducts;
+ }else{
+ currentProduct = products.get(productId);
+ }
+ break;
+ case "review/userId:":
+ userId = line.split(" ")[1];
+ if (!users.containsKey(userId)) {
+ totalUsers++;
+ users.put(userId,totalUsers);
+ currentUser = totalUsers;
+ }else{
+ currentUser = users.get(userId);
+ }
+ break;
+ case "review/score:":
+ score = line.split(" ")[1];
+ wr.write(currentUser+","+currentProduct+","+score+"\n");
+ totalReviews++;
+ break;
+ }
+ }
+ br.close();
+ wr.close();
+ DataModel model = new FileDataModel(new File(pathWriter));
+ UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
+ UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
+ recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
+ }
+
+ public int getTotalReviews() {
+ return totalReviews;
+ }
+
+ public int getTotalProducts() {
+ return totalProducts;
+ }
+
+ public int getTotalUsers() {
+ return totalUsers;
+ }
+
+ public List getRecommendationsForUser(String userId) throws TasteException {
+ List list = new ArrayList();
+ int id = users.get(userId);
+ List recommendations = recommender.recommend(id, 3);
+ BiMap inverseProducts = products.inverse();
+ for (RecommendedItem recommendation: recommendations) {
+ list.add(inverseProducts.get((int) recommendation.getItemID()));
+ }
+ return list;
+ }
+
+}
diff --git a/src/test/java/nearsoft/academy/bigdata/recommendation/MovieRecommenderTest.java b/src/test/java/nearsoft/academy/bigdata/recommendation/MovieRecommenderTest.java
index 0d0b1fe..54b0346 100644
--- a/src/test/java/nearsoft/academy/bigdata/recommendation/MovieRecommenderTest.java
+++ b/src/test/java/nearsoft/academy/bigdata/recommendation/MovieRecommenderTest.java
@@ -15,7 +15,7 @@ public class MovieRecommenderTest {
public void testDataInfo() throws IOException, TasteException {
//download movies.txt.gz from
// http://snap.stanford.edu/data/web-Movies.html
- MovieRecommender recommender = new MovieRecommender("/path/to/movies.txt.gz");
+ MovieRecommender recommender = new MovieRecommender("D:/Charlitos/Nearsoft/programs/Semana_3/movies.txt");
assertEquals(7911684, recommender.getTotalReviews());
assertEquals(253059, recommender.getTotalProducts());
assertEquals(889176, recommender.getTotalUsers());
diff --git a/target/big-data-1.0-SNAPSHOT.jar b/target/big-data-1.0-SNAPSHOT.jar
new file mode 100644
index 0000000..ba2396e
Binary files /dev/null and b/target/big-data-1.0-SNAPSHOT.jar differ
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..4485044
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Sun Apr 19 21:24:13 MST 2020
+groupId=nearsoft.academy
+artifactId=big-data
+version=1.0-SNAPSHOT
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..14095b7
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1,2 @@
+nearsoft\academy\bigdata\recommendation\MovieRecommender.class
+nearsoft\academy\bigdata\recommendation\MovieRecommenderTest.class
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..092df19
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,2 @@
+D:\NetBeansProjects\big-data-exercises-master\src\test\java\nearsoft\academy\bigdata\recommendation\MovieRecommenderTest.java
+D:\NetBeansProjects\big-data-exercises-master\src\test\java\nearsoft\academy\bigdata\recommendation\MovieRecommender.java
diff --git a/target/surefire-reports/TEST-nearsoft.academy.bigdata.recommendation.MovieRecommenderTest.xml b/target/surefire-reports/TEST-nearsoft.academy.bigdata.recommendation.MovieRecommenderTest.xml
new file mode 100644
index 0000000..526920d
--- /dev/null
+++ b/target/surefire-reports/TEST-nearsoft.academy.bigdata.recommendation.MovieRecommenderTest.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/surefire-reports/nearsoft.academy.bigdata.recommendation.MovieRecommenderTest.txt b/target/surefire-reports/nearsoft.academy.bigdata.recommendation.MovieRecommenderTest.txt
new file mode 100644
index 0000000..ebeb4f4
--- /dev/null
+++ b/target/surefire-reports/nearsoft.academy.bigdata.recommendation.MovieRecommenderTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: nearsoft.academy.bigdata.recommendation.MovieRecommenderTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 520.792 sec
diff --git a/target/test-classes/nearsoft/academy/bigdata/recommendation/MovieRecommender.class b/target/test-classes/nearsoft/academy/bigdata/recommendation/MovieRecommender.class
new file mode 100644
index 0000000..84cfe5b
Binary files /dev/null and b/target/test-classes/nearsoft/academy/bigdata/recommendation/MovieRecommender.class differ
diff --git a/target/test-classes/nearsoft/academy/bigdata/recommendation/MovieRecommenderTest.class b/target/test-classes/nearsoft/academy/bigdata/recommendation/MovieRecommenderTest.class
new file mode 100644
index 0000000..56fcca4
Binary files /dev/null and b/target/test-classes/nearsoft/academy/bigdata/recommendation/MovieRecommenderTest.class differ