You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by ss...@apache.org on 2013/11/08 14:31:55 UTC
svn commit: r1540012 -
/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java
Author: ssc
Date: Fri Nov 8 13:31:54 2013
New Revision: 1540012
URL: http://svn.apache.org/r1540012
Log:
MAHOUT-1352 Option to change RecommenderJob output format
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java?rev=1540012&r1=1540011&r2=1540012&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java Fri Nov 8 13:31:54 2013
@@ -22,6 +22,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.JobContext;
+import org.apache.hadoop.mapreduce.OutputFormat;
import org.apache.hadoop.mapreduce.lib.input.MultipleInputs;
import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
@@ -126,6 +127,7 @@ public final class RecommenderJob extend
addOption("outputPathForSimilarityMatrix", "opfsm", "write the item similarity matrix to this path (optional)",
false);
addOption("randomSeed", null, "use this seed for sampling", false);
+ addFlag("sequencefileOutput", null, "write the output into a SequenceFile instead of a text file");
Map<String, List<String>> parsedArgs = parseArguments(args);
if (parsedArgs == null) {
@@ -259,12 +261,16 @@ public final class RecommenderJob extend
if (filterFile != null) {
aggregateAndRecommendInput += "," + explicitFilterPath;
}
+
+ Class<? extends OutputFormat> outputFormat = parsedArgs.containsKey("--sequencefileOutput")
+ ? SequenceFileOutputFormat.class : TextOutputFormat.class;
+
//extract out the recommendations
Job aggregateAndRecommend = prepareJob(
new Path(aggregateAndRecommendInput), outputPath, SequenceFileInputFormat.class,
PartialMultiplyMapper.class, VarLongWritable.class, PrefAndSimilarityColumnWritable.class,
AggregateAndRecommendReducer.class, VarLongWritable.class, RecommendedItemsWritable.class,
- TextOutputFormat.class);
+ outputFormat);
Configuration aggregateAndRecommendConf = aggregateAndRecommend.getConfiguration();
if (itemsFile != null) {
aggregateAndRecommendConf.set(AggregateAndRecommendReducer.ITEMS_FILE, itemsFile);