You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by gs...@apache.org on 2010/08/29 13:53:37 UTC
svn commit: r990571 -
/mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/decomposer/DistributedLanczosSolver.java
Author: gsingers
Date: Sun Aug 29 11:53:37 2010
New Revision: 990571
URL: http://svn.apache.org/viewvc?rev=990571&view=rev
Log:
MAHOUT-461: convert Lanczos to standard input/output args
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/decomposer/DistributedLanczosSolver.java
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/decomposer/DistributedLanczosSolver.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/decomposer/DistributedLanczosSolver.java?rev=990571&r1=990570&r2=990571&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/decomposer/DistributedLanczosSolver.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/decomposer/DistributedLanczosSolver.java Sun Aug 29 11:53:37 2010
@@ -64,26 +64,26 @@ public class DistributedLanczosSolver ex
@Override
public int run(String[] strings) throws Exception {
- Configuration originalConfig = getConf();
- Path inputPath = new Path(originalConfig.get("mapred.input.dir"));
+ Path inputPath = new Path(parsedArgs.get("--input"));
+ Path outputEigenVectorPath = new Path(parsedArgs.get("--output"));
Path outputTmpPath = new Path(parsedArgs.get("--tempDir"));
int numRows = Integer.parseInt(parsedArgs.get("--numRows"));
int numCols = Integer.parseInt(parsedArgs.get("--numCols"));
boolean isSymmetric = Boolean.parseBoolean(parsedArgs.get("--symmetric"));
int desiredRank = Integer.parseInt(parsedArgs.get("--rank"));
- return run(inputPath, outputTmpPath, numRows, numCols, isSymmetric, desiredRank);
+ return run(inputPath, outputTmpPath, outputEigenVectorPath, numRows, numCols, isSymmetric, desiredRank);
}
public int run(Path inputPath,
Path outputTmpPath,
- int numRows,
+ Path outputEigenVectorPath, int numRows,
int numCols,
boolean isSymmetric,
int desiredRank) throws Exception {
Configuration originalConfig = getConf();
Matrix eigenVectors = new DenseMatrix(desiredRank, numCols);
List<Double> eigenValues = new ArrayList<Double>();
- String outputEigenVectorPath = originalConfig.get("mapred.output.dir");
+
DistributedRowMatrix matrix = new DistributedRowMatrix(inputPath,
outputTmpPath,
@@ -103,12 +103,11 @@ public class DistributedLanczosSolver ex
* @param outputPath The path (relative to the current Configuration's FileSystem) to save the output to.
* @throws IOException
*/
- public void serializeOutput(Matrix eigenVectors, List<Double> eigenValues, String outputPath) throws IOException {
+ public void serializeOutput(Matrix eigenVectors, List<Double> eigenValues, Path outputPath) throws IOException {
log.info("Persisting {} eigenVectors and eigenValues to: {}", eigenVectors.numRows(), outputPath);
- Path path = new Path(outputPath);
Configuration conf = getConf();
FileSystem fs = FileSystem.get(conf);
- SequenceFile.Writer seqWriter = new SequenceFile.Writer(fs, conf, path, IntWritable.class, VectorWritable.class);
+ SequenceFile.Writer seqWriter = new SequenceFile.Writer(fs, conf, outputPath, IntWritable.class, VectorWritable.class);
IntWritable iw = new IntWritable();
for (int i = 0; i < eigenVectors.numRows() - 1; i++) {
Vector v = eigenVectors.getRow(i);
@@ -150,7 +149,8 @@ public class DistributedLanczosSolver ex
@Override
public int run(String[] args) throws Exception {
-
+ addInputOption();
+ addOutputOption();
addOption("numRows", "nr", "Number of rows of the input matrix");
addOption("numCols", "nc", "Number of columns of the input matrix");
addOption("rank", "r", "Desired decomposition rank (note: only roughly 1/4 to 1/3 "