大数据Spark “蘑菇云”行动前传18课:Scala偏函数、异常、Lazy值编码实战及Spark源码鉴赏
2016-08-08 20:56
846 查看
大数据Spark “蘑菇云”行动前传18课:Scala偏函数、异常、Lazy值编码实战及Spark源码鉴赏
1 Spark源码中Scala偏函数、异常、Lazy值源码鉴赏
2 Scala偏函数、异常、Lazy值编码操作实战
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/18/a1d2e5f48952548820e51aa3c613d19a)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/18/d765dbbe0c68e1cf32cedae1cf25e257)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/18/623292ceb3d4e3e8ba23f42964567a64)
package com.dt.spark.scala.bascis
object HelloPartionalFunction {
def main(args: Array[String]): Unit = {
val sample =1 to 10
val isEven:PartialFunction[Int,String]={
case x if x % 2 == 0 => x + "is even"
}
isEven(4)
val evenNumbers = sample collect isEven
evenNumbers.foreach { println }
val isOdd:PartialFunction[Int,String]={
case x if x % 2 == 1 => x + "is Odd"
}
val numbers =sample map {isEven orElse isOdd}
numbers.foreach { println }
}
}
2is even
4is even
6is even
8is even
10is even
1is Odd
2is even
3is Odd
4is even
5is Odd
6is even
7is Odd
8is even
9is Odd
10is even
Exception in thread "main" scala.MatchError: 3 (of class java.lang.Integer)
at scala.PartialFunction$$anon$1.apply(PartialFunction.scala:248)
at scala.PartialFunction$$anon$1.apply(PartialFunction.scala:246)
at com.dt.spark.scala.bascis.HelloPartionalFunction$$anonfun$1.applyOrElse(HelloPartionalFunction.scala:6)
at com.dt.spark.scala.bascis.HelloPartionalFunction$$anonfun$1.applyOrElse(HelloPartionalFunction.scala:6)
at scala.runtime.AbstractPartialFunction$mcVI$sp.apply$mcVI$sp(AbstractPartialFunction.scala:33)
at com.dt.spark.scala.bascis.HelloPartionalFunction$.main(HelloPartionalFunction.scala:10)
at com.dt.spark.scala.bascis.HelloPartionalFunction.main(HelloPartionalFunction.scala)
4is even
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/18/81df5b85b422105c02cfdc63fdf50e32)
package com.dt.spark.scala.bascis
import java.io.IOException
object HelloExceptionAndLazyValue {
def main(args: Array[String]): Unit = {
try {
1/0
}catch {
case ioException:IOException => println("IOException" + ioException.toString())
case illegaArgs:IllegalArgumentException => println("IllegalArgumentException" + illegaArgs.toString())
case arithmeticException:ArithmeticException => println ("ArithmeticException"+arithmeticException.toString())
}
lazy val score =100
println(score)
}
}
ArithmeticExceptionjava.lang.ArithmeticException: / by zero
100
1 Spark源码中Scala偏函数、异常、Lazy值源码鉴赏
2 Scala偏函数、异常、Lazy值编码操作实战
package com.dt.spark.scala.bascis
object HelloPartionalFunction {
def main(args: Array[String]): Unit = {
val sample =1 to 10
val isEven:PartialFunction[Int,String]={
case x if x % 2 == 0 => x + "is even"
}
isEven(4)
val evenNumbers = sample collect isEven
evenNumbers.foreach { println }
val isOdd:PartialFunction[Int,String]={
case x if x % 2 == 1 => x + "is Odd"
}
val numbers =sample map {isEven orElse isOdd}
numbers.foreach { println }
}
}
2is even
4is even
6is even
8is even
10is even
1is Odd
2is even
3is Odd
4is even
5is Odd
6is even
7is Odd
8is even
9is Odd
10is even
Exception in thread "main" scala.MatchError: 3 (of class java.lang.Integer)
at scala.PartialFunction$$anon$1.apply(PartialFunction.scala:248)
at scala.PartialFunction$$anon$1.apply(PartialFunction.scala:246)
at com.dt.spark.scala.bascis.HelloPartionalFunction$$anonfun$1.applyOrElse(HelloPartionalFunction.scala:6)
at com.dt.spark.scala.bascis.HelloPartionalFunction$$anonfun$1.applyOrElse(HelloPartionalFunction.scala:6)
at scala.runtime.AbstractPartialFunction$mcVI$sp.apply$mcVI$sp(AbstractPartialFunction.scala:33)
at com.dt.spark.scala.bascis.HelloPartionalFunction$.main(HelloPartionalFunction.scala:10)
at com.dt.spark.scala.bascis.HelloPartionalFunction.main(HelloPartionalFunction.scala)
4is even
package com.dt.spark.scala.bascis
import java.io.IOException
object HelloExceptionAndLazyValue {
def main(args: Array[String]): Unit = {
try {
1/0
}catch {
case ioException:IOException => println("IOException" + ioException.toString())
case illegaArgs:IllegalArgumentException => println("IllegalArgumentException" + illegaArgs.toString())
case arithmeticException:ArithmeticException => println ("ArithmeticException"+arithmeticException.toString())
}
lazy val score =100
println(score)
}
}
ArithmeticExceptionjava.lang.ArithmeticException: / by zero
100
相关文章推荐
- 大数据Spark “蘑菇云”行动前传第22课:Scala集合和高级函数操作实战及Spark源码鉴赏.
- 大数据Spark “蘑菇云”行动前传第7课:零基础实战Scala面向对象编程及Spark源码解析
- 大数据Spark“蘑菇云”行动-第13课Scala模式匹配实战和Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第13课Scala模式匹配实战和Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第10课:Scala继承彻底实战和Spark源码鉴赏.
- 大数据Spark “蘑菇云”行动前传第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码解析
- 大数据Spark “蘑菇云”行动前传第4课:零基础彻底实战Scala控制结构及Spark源码解析
- 大数据Spark “蘑菇云”行动前传第3课:在IDE下开发第一个Scala程序透彻解析及Scala控制结构详解实战
- 大数据Spark “蘑菇云”行动前传第2课:Scala零基础实战入门的第一堂课及如何成为Scala高手
- 大数据Spark “蘑菇云”行动前传第20课:Scala提取器、注解深度实战详解及Spark源码鉴赏大数据Spark “蘑菇云”行动前传第20课:Scala提取器、注解深度实战详解及Spark源码鉴
- 大数据Spark “蘑菇云”行动前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏
- 大数据Spark“蘑菇云”行动-第10课:Scala继承彻底实战和Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第9课:Scala类和对象彻底实战和Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第14课Scala集合上的函数式编程实战及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第12课:Scala函数式编程进阶与Spark源码鉴赏
- 大数据Spark“蘑菇云”行动-第11课:Scala面向接口彻底实战和Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第19课:Scala的包、继承覆写及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第5课:零基础实战Scala函数式编程及Spark源码解析
- 大数据Spark “蘑菇云”行动第65课: 页面跳转功能代码骨架分析与实战 放scala代码
- 大数据Spark “蘑菇云”行动前传Scala专家之路第26课:Scala的核心力量和黄金定律