Updated Branches: refs/heads/master 749f84282 -> d009b17d1
new main file Project: http://git-wip-us.apache.org/repos/asf/incubator-spark/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-spark/commit/1a21ba29 Tree: http://git-wip-us.apache.org/repos/asf/incubator-spark/tree/1a21ba29 Diff: http://git-wip-us.apache.org/repos/asf/incubator-spark/diff/1a21ba29 Branch: refs/heads/master Commit: 1a21ba29672074692be6c006a8938bfa86330a19 Parents: 6c3674c Author: Reza Zadeh <riz...@gmail.com> Authored: Thu Dec 26 18:09:33 2013 -0500 Committer: Reza Zadeh <riz...@gmail.com> Committed: Thu Dec 26 18:09:33 2013 -0500 ---------------------------------------------------------------------- .../apache/spark/mllib/linalg/sparsesvd.scala | 29 +++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-spark/blob/1a21ba29/mllib/src/main/scala/org/apache/spark/mllib/linalg/sparsesvd.scala ---------------------------------------------------------------------- diff --git a/mllib/src/main/scala/org/apache/spark/mllib/linalg/sparsesvd.scala b/mllib/src/main/scala/org/apache/spark/mllib/linalg/sparsesvd.scala index f9b9a04..be8ccff 100644 --- a/mllib/src/main/scala/org/apache/spark/mllib/linalg/sparsesvd.scala +++ b/mllib/src/main/scala/org/apache/spark/mllib/linalg/sparsesvd.scala @@ -110,22 +110,31 @@ object SVD { (retU, retS, retV) } + def main(args: Array[String]) { - if (args.length < 4) { - println("Usage: KMeans <master> <input_file> <k> <max_iterations> [<runs>]") + if (args.length < 8) { + println("Usage: SVD <master> <matrix_file> <m> <n> <minimum_singular_value> <output_U_file> <output_S_file> <output_V_file>") System.exit(1) } - val (master, inputFile, k, iters) = (args(0), args(1), args(2).toInt, args(3).toInt) - val runs = if (args.length >= 5) args(4).toInt else 1 - val sc = new SparkContext(master, "KMeans") - val data = sc.textFile(inputFile).map(line => line.split(' ').map(_.toDouble)).cache() - println("Cost: ") + val (master, inputFile, m, n, min_svalue, output_u, output_s, output_v) = + (args(0), args(1), args(2).toInt, args(3).toInt, args(4).toDouble, args(5), args(6), args(7)) + + val sc = new SparkContext(master, "SVD") + + val rawdata = sc.textFile(inputFile) + val data = rawdata.map { line => + val parts = line.split(',') + ((parts(0).toInt, parts(1).toInt), parts(2).toDouble) + } + + val (u, s, v) = SVD.sparseSVD(data, m, n, min_svalue) + println("Computed " + s.size + " singular values and vectors") + u.saveAsText(output_u) + s.saveAsText(output_s) + v.saveAsText(output_v) System.exit(0) - //val data = sc.makeRDD(Array.tabulate(m,n){ (a,b)=> ((a+1,b+1),a*b%37) }.flatten ) } } - -