小编Sha*_*nil的帖子

当未明确给出返回类型时,为什么可以用返回 String 的方法覆盖返回 Unit 的方法?

我正在研究 Scala Edition1 https://www.artima.com/pins1ed/traits.html编程中的特征一章中的代码示例

由于我的错字,遇到了一个奇怪的行为。尽管覆盖方法的返回类型UnitString. 但是在对象上调用该方法时,它返回 Unit 但不打印任何内容。

trait Philosophical {
    def philosophize = println("I consume memory, therefore I am!")
}

class Frog extends Philosophical {
  override def toString = "green"
  override def philosophize = "It aint easy to be " + toString + "!"
}

val frog = new Frog
//frog: Frog = green

frog.philosophize
// no message printed on console

val f = frog.philosophize
//f: Unit = ()
Run Code Online (Sandbox Code Playgroud)

但是当我在重写的方法中给出显式返回类型时,它给出了一个编译错误:

class Frog extends Philosophical …
Run Code Online (Sandbox Code Playgroud)

overriding scala traits

11
推荐指数
2
解决办法
417
查看次数

为什么我无法使用spark-submit覆盖num-executors选项?

我试图覆盖火花属性,例如num-executors通过spark-submit提交应用程序,如下所示:

spark-submit --class WC.WordCount \
--num-executors 8 \
--executor-cores 5 \
--executor-memory 3584M \
...../<myjar>.jar \
/public/blahblahblah /user/blahblah
Run Code Online (Sandbox Code Playgroud)

但它运行的默认执行程序数为2.但是如果我添加,我可以覆盖属性

--master yarn
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么会这样吗?有趣的是,在我的应用程序代码中,我将master设置为yarn-client:

val conf = new SparkConf()
   .setAppName("wordcount")
   .setMaster("yarn-client")
   .set("spark.ui.port","56487")

val sc = new SparkContext(conf)
Run Code Online (Sandbox Code Playgroud)

有人可以说明该选项的--master工作原理

hadoop-yarn apache-spark

5
推荐指数
2
解决办法
1924
查看次数

在shell脚本中将月份添加到可变日期

我有一个传递给shell脚本的日期,必须在其中加上一个月。例如:

passed_date=2017-06-01
Run Code Online (Sandbox Code Playgroud)

我需要添加1个月:

converted_date=2017-07-01
Run Code Online (Sandbox Code Playgroud)

我如何在shell脚本中实现这一目标。我尝试将日期转换为自纪元以来的秒数,然后添加1个月,例如:

date +%s -d 20170601 -d "+1 month"
Run Code Online (Sandbox Code Playgroud)

然后将秒转换回yyyy-mm-dd

date -d@$(date +%s -d 20170601 -d "+1 month") +%Y-%m-%d
Run Code Online (Sandbox Code Playgroud)

但基本上是将当前系统日期添加1个月

linux shell sh

3
推荐指数
1
解决办法
5649
查看次数

在Scala中应用列表的方法

我知道Scala List可以创建为:

val l = List(1,2,3)
Run Code Online (Sandbox Code Playgroud)

执行上述语句时,幕后发生了什么?这里调用apply方法吗?

根据scala文档:对于序列,apply是位置索引 http://docs.scala-lang.org/overviews/collections/seqs.html

那么,是否有2个apply方法,一个用于位置索引,另一个用作对象创建的工厂方法?

scala

2
推荐指数
1
解决办法
240
查看次数

标签 统计

scala ×2

apache-spark ×1

hadoop-yarn ×1

linux ×1

overriding ×1

sh ×1

shell ×1

traits ×1