1 object WeekDay extends Enumeration { 2 type WeekDay = Value 3 val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value 4 } 5 import WeekDay._ 6 7 def isWorkingDay(d: WeekDay) = ! (d == Sat || d == Sun) 8 9 WeekDay.values filter isWorkingDay foreach println
这是官方文档的一段代码。
在scala REPL中运行正常,版本为2.10.4。可是在spark-shell中,运行出错,版本1.3.1,scala版本2.10.4。
另有sbt编译正常通过,在IDEA中报错。
而且就是在函数实参传形参的那一步报类型匹配错误。猜测应该跟Enumeration的实现用了val有关。
stackoverflow上说是因为scala在对Enumeration向Int隐式转换的过程中出了问题,具体原因不明。Google上只有一条相关结果。
留作疑问。
spark-shell 2.0.0问题同样存在,不过错误不是type mismatch了。