如果在SparkConf之后添加括号,它会编译:
val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
关键是SparkConf是一个类而不是函数,因此您也可以使用类名作为范围.因此,当您在类名后添加括号时,您将确保调用类构造函数而不是作用域功能.以下是Scala shell中的一个示例,说明了不同之处:
scala> class C1 { var age = 0; def setAge(a:Int) = {age = a}} defined class C1 scala> new C1 res18: C1 = $iwC$$iwC$C1@2d33c200 scala> new C1() res19: C1 = $iwC$$iwC$C1@30822879 scala> new C1.setAge(30) // this doesn't work:23: error: not found: value C1 new C1.setAge(30) ^ scala> new C1().setAge(30) // this works scala>