Author: ssc
Date: Mon Mar 11 12:18:11 2013
New Revision: 1455111

URL: http://svn.apache.org/r1455111
Log:
MAHOUT-1076 Matrix Multiplication output to user specified directory

Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/DistributedRowMatrix.java
    
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/MatrixMultiplicationJob.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/DistributedRowMatrix.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/DistributedRowMatrix.java?rev=1455111&r1=1455110&r2=1455111&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/DistributedRowMatrix.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/DistributedRowMatrix.java
 Mon Mar 11 12:18:11 2013
@@ -171,16 +171,26 @@ public class DistributedRowMatrix implem
     return numCols;
   }
 
+
   /**
    * This implements matrix this.transpose().times(other)
    * @param other   a DistributedRowMatrix
    * @return    a DistributedRowMatrix containing the product
    */
   public DistributedRowMatrix times(DistributedRowMatrix other) throws 
IOException {
+    return times(other, new Path(outputTmpBasePath.getParent(), "productWith-" 
+ (System.nanoTime() & 0xFF)));
+  }
+
+  /**
+   * This implements matrix this.transpose().times(other)
+   * @param other   a DistributedRowMatrix
+   * @param outPath path to write result to
+   * @return    a DistributedRowMatrix containing the product
+   */
+  public DistributedRowMatrix times(DistributedRowMatrix other, Path outPath) 
throws IOException {
     if (numRows != other.numRows()) {
       throw new CardinalityException(numRows, other.numRows());
     }
-    Path outPath = new Path(outputTmpBasePath.getParent(), "productWith-" + 
(System.nanoTime() & 0xFF));
 
     Configuration initialConf = getConf() == null ? new Configuration() : 
getConf();
     Configuration conf =

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/MatrixMultiplicationJob.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/MatrixMultiplicationJob.java?rev=1455111&r1=1455110&r2=1455111&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/MatrixMultiplicationJob.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/MatrixMultiplicationJob.java
 Mon Mar 11 12:18:11 2013
@@ -91,6 +91,8 @@ public class MatrixMultiplicationJob ext
     addOption("inputPathA", "ia", "Path to the first input matrix", true);
     addOption("inputPathB", "ib", "Path to the second input matrix", true);
 
+    addOption("outputPath", "op", "Path to the output matrix", false);
+
     Map<String, List<String>> argMap = parseArguments(strings);
     if (argMap == null) {
       return -1;
@@ -108,8 +110,12 @@ public class MatrixMultiplicationJob ext
     a.setConf(new Configuration(getConf()));
     b.setConf(new Configuration(getConf()));
 
-    //DistributedRowMatrix c = a.times(b);
-    a.times(b);
+    if (hasOption("outputPath")) {
+      a.times(b, new Path(getOption("outputPath")));
+    } else {
+      a.times(b);
+    }
+
     return 0;
   }
 


Reply via email to