【发布时间】:2014-01-23 07:46:52
【问题描述】:
对于以下构造函数的调用:
class SparkContext(
val master: String,
val appName: String,
val sparkHome: String = null,
val jars: Seq[String] = Nil,
val environment: Map[String, String] = Map())
extends Logging {
在下面的通知中,最后一个参数被注释掉了:
val spark = new SparkContext("localhost", "GroupBy Test",
System.getenv("SPARK_HOME"), Seq(System.getenv("SPARK_EXAMPLES_JAR")) /* , Map() */)
然后scala编译器(2.9.2)抱怨:
not enough arguments for constructor SparkContext: (master: String, appName: String, sparkHome: String, jars: Seq[String], environment: scala.collection.Map[String,String])spark.SparkContext
val spark = new SparkContext("localhost", "GroupBy Test",
^
如果取消注释,则代码编译。所以..这里有什么问题 AFA 省略了最后一个参数(并且 scala 使用默认值)?
注意我是 2.9.3
【问题讨论】:
-
抱歉,我使用的是 Scala 2.10.3,我将您的代码复制并粘贴到 REPL,但代码运行时没有出现错误。 (只是在扩展日志中进行了修改)
-
我在 2.9.3 我认为这就是区别(见@Vidya)
-
很遗憾,@Naetmul,最新版本的 Spark 仅适用于 2.9.3。
-
我不是 spark 用户,但是什么版本的 spark? ctor 从 0.6 变为 0.7 到 0.8。你怎么建? 0.6 缺少默认值。
-
好吧,我从您的其他线程中看到您解决了编译问题。如果这个问题是虚假的,如果你回答这个问题会很好,或者如果有一个有趣的解决方案,你会回答它。
标签: scala default-value