1717
1818package org .apache .spark .mllib .topicModeling
1919
20- import java .text .BreakIterator
21-
2220import org .apache .log4j .{Level , Logger }
2321import org .apache .spark .mllib .linalg .{SparseVector , Vector , Vectors }
2422import org .apache .spark .rdd .RDD
2523import org .apache .spark .{SparkConf , SparkContext }
2624import scopt .OptionParser
2725
2826import scala .collection .mutable
29- import scala .reflect .runtime .universe ._
3027
3128
3229/**
@@ -65,11 +62,11 @@ object OnlineHDPExample {
6562 parseAndRun(args)
6663 }
6764
68- def parseAndRun (args : Array [String ]) = {
65+ def parseAndRun (args : Array [String ], inSc : Option [ SparkContext ] = None ) : Seq [ LDAMetrics ] = {
6966
7067 val parser = getParser(args)
7168 val results = parser.parse(args, OnlineHDPParams ()).map { params=>
72- run(params)
69+ run(params, inSc )
7370 }.getOrElse {
7471 parser.showUsageAsError
7572 sys.exit(1 )
@@ -83,7 +80,7 @@ object OnlineHDPExample {
8380 val parser = new OptionParser [OnlineHDPParams ](" LDAExample" ) {
8481 head(" LDAExample: an example LDA app for plain text data." )
8582 opt[String ](" master" )
86- .text(s " spark master. default: ${defaultParams.master}" )
83+ .text(s " spark master ('reuse' if master already started') . default: ${defaultParams.master}" )
8784 .action((x, c) => c.copy(master = x))
8885 opt[Int ](" k" )
8986 .text(s " number of topics. default: ${defaultParams.k}" )
@@ -127,11 +124,13 @@ object OnlineHDPExample {
127124 parser
128125 }
129126
130- def run (params : OnlineHDPParams ) {
127+ def run (params : OnlineHDPParams , inSc : Option [ SparkContext ] = None ) = {
131128
132- val conf = new SparkConf ().setAppName(s " LDAExample with $params" )
133- .setMaster(params.master)
134- val sc = new SparkContext (conf)
129+ val sc = inSc.getOrElse {
130+ val conf = new SparkConf ().setAppName(s " LDAExample with $params" )
131+ .setMaster(params.master)
132+ new SparkContext (conf)
133+ }
135134
136135 val logLevel = Level .toLevel(params.logLevel, Level .INFO )
137136 Logger .getRootLogger.setLevel(logLevel)
0 commit comments