You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sr...@apache.org on 2009/05/05 13:49:43 UTC

svn commit: r771675 - in /lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop: RecommenderJob.java RecommenderMapper.java

Author: srowen
Date: Tue May  5 11:49:41 2009
New Revision: 771675

URL: http://svn.apache.org/viewvc?rev=771675&view=rev
Log: (empty)

Modified:
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderJob.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderMapper.java

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderJob.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderJob.java?rev=771675&r1=771674&r2=771675&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderJob.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderJob.java Tue May  5 11:49:41 2009
@@ -37,14 +37,14 @@
  * <p>Command line arguments are:</p>
  * <ol>
  *  <li>Fully-qualified class name of {@link Recommender} to use to make recommendations.
- *   Note that it must have a no-arg constructor.</li>
+ *   Note that it must have a constructor which takes a {@link org.apache.mahout.cf.taste.model.DataModel}
+ *   argument.</li>
  *  <li>Number of recommendations to compute per user</li>
  *  <li>Location of a text file containing user IDs for which recommendations should be computed,
  *   one per line</li>
  *  <li>Location of a data model file containing preference data, suitable for use with
  *   {@link org.apache.mahout.cf.taste.impl.model.file.FileDataModel}</li>
  *  <li>Output path where reducer output should go</li>
- *  <li>Number of mapper tasks to use</li>
  * </ol>
  *
  * <p>Example:</p>

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderMapper.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderMapper.java?rev=771675&r1=771674&r2=771675&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderMapper.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommenderMapper.java Tue May  5 11:49:41 2009
@@ -45,14 +45,17 @@
  *
  * <p>Note that there is no corresponding {@link org.apache.hadoop.mapred.Reducer}; this
  * implementation can only partially take advantage of the mapreduce paradigm and only
- * really leverages it for easy parallelization.</p>
+ * really leverages it for easy parallelization. Therefore, use the
+ * {@link org.apache.hadoop.mapred.lib.IdentityReducer} when running this on Hadoop.</p>
+ *
+ * @see RecommenderJob
  */
 public final class RecommenderMapper
     extends MapReduceBase
     implements Mapper<LongWritable, Text, Text, RecommendedItemsWritable> {
 
   static final String RECOMMENDER_CLASS_NAME = "recommenderClassName";
-  static final String RECOMMENDATIONS_PER_USER = "recommendadtionsPerUser";
+  static final String RECOMMENDATIONS_PER_USER = "recommendationsPerUser";
   static final String DATA_MODEL_FILE = "dataModelFile";
 
   private Recommender recommender;
@@ -92,8 +95,10 @@
       throw new RuntimeException(ioe);
     }
     try {
-      Class<? extends Recommender> recommenderClass = Class.forName(recommenderClassName).asSubclass(Recommender.class);
-      Constructor<? extends Recommender> constructor = recommenderClass.getConstructor(DataModel.class);
+      Class<? extends Recommender> recommenderClass =
+          Class.forName(recommenderClassName).asSubclass(Recommender.class);
+      Constructor<? extends Recommender> constructor =
+          recommenderClass.getConstructor(DataModel.class);
       recommender = constructor.newInstance(fileDataModel);
     } catch (NoSuchMethodException nsme) {
       throw new RuntimeException(nsme);