我放了一些测试用例并且有很多参数,但它很麻烦,并且不太容易理解,将它们放入scala的衬里。我宁愿以一种视觉上可接受的方式指定,但正确地用scala来解析它们......
答案 0 :(得分:0)
我会使用String Interpolation来定义参数,例如下面的
val kafkaServers = "server1:9092,server2:9092"
val pleasentArgs = s"""
--master='spark://someserver'
--metricWindowSize=50
--outputDirectory='/tmp/someGoodDirectory'
--zkQuorum=$zkQuorum
--saveToHDF=false
--userName='jack@somewhereElse.com'
--kafkaServers=$kafkaServers
"""
并有一个方法来清理所有换行符,制表符等字符,然后生成如下所示的args:
def cleanUp(str:String) = str.split('\n').map(_.trim.filter(_ >= ' ')).mkString(" ")
def genArgs(args:String): Array[String] =cleanUp(args).split(" ").filter(!_.trim.isEmpty)
所以最终我们可以调用genArgs方法
val args = genArgs(pleasentArgs)