sta*_*010 4 scala apache-spark
每当我在网上找到一些Scala/Spark代码时,我想直接将它粘贴到spark-shell中进行试用.(我在CentOS和Mac OS上都使用Spark-shell和Spark 1.6.)
通常,这种方法效果很好,但是当行以点/句点开始时(表示继续的方法调用),我总是遇到问题.如果我将点移动到上一行,它就可以工作.
示例:以下是我在网上找到的一些代码:
val paramMap = ParamMap(lr.maxIter -> 20)
.put(lr.maxIter, 30)
.put(lr.regParam -> 0.1, lr.threshold -> 0.55)
Run Code Online (Sandbox Code Playgroud)
所以当我将它直接粘贴到spark-shell中时,我看到了这个错误:
scala> val paramMap = ParamMap(lr.maxIter -> 20)
paramMap: org.apache.spark.ml.param.ParamMap =
{
logreg_d63b85553548-maxIter: 20
}
scala> .put(lr.maxIter, 30)
<console>:1: error: illegal start of definition
.put(lr.maxIter, 30)
^
scala> .put(lr.regParam -> 0.1, lr.threshold -> 0.55)
<console>:1: error: illegal start of definition
.put(lr.regParam -> 0.1, lr.threshold -> 0.55)
^
Run Code Online (Sandbox Code Playgroud)
但是,当我将点移动到前一行时,一切都很好.
scala> val paramMap = ParamMap(lr.maxIter -> 20).
| put(lr.maxIter, 30).
| put(lr.regParam -> 0.1, lr.threshold -> 0.55)
paramMap: org.apache.spark.ml.param.ParamMap =
{
logreg_d63b85553548-maxIter: 30,
logreg_d63b85553548-regParam: 0.1,
logreg_d63b85553548-threshold: 0.55
}
Run Code Online (Sandbox Code Playgroud)
有没有办法配置spark-shell,以便它接受以点开头的行(或等效地,即使它们不以点结尾也会继续行)?
必须没有领先的空白.
scala> "3"
res0: String = 3
scala> .toInt
res1: Int = 3
scala> "3"
res2: String = 3
scala> .toInt
<console>:1: error: illegal start of definition
.toInt
^
Run Code Online (Sandbox Code Playgroud)
PS:当检测到点时,它可能会忽略空白.一个JIRA是对加关注这里.
归档时间: |
|
查看次数: |
1375 次 |
最近记录: |