如何以最好的方式解析args,使其清晰易懂

时间:2017-05-21 19:33:44

标签: scala

我放了一些测试用例并且有很多参数,但它很麻烦,并且不太容易理解,将它们放入scala的衬里。我宁愿以一种视觉上可接受的方式指定,但正确地用scala来解析它们......

1 个答案:

答案 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)