大数据Spark “蘑菇云”行动前传第13课Scala模式匹配实战和Spark源码鉴赏
2016-08-01 20:28
671 查看
大数据Spark “蘑菇云”行动前传第13课Scala模式匹配实战和Spark源码鉴赏
1 Spark源码的scala模式匹配编程
2 scala模式匹配编程操作实战
A机器发信息给B机器,可能就是case class ,case class不可变
B机器收到,就可以用模式匹配提取信息
![](http://img.blog.csdn.net/20160801202757698?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160801202803244?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160801203109093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
package com.dt.spark.scala.bascis
class Dataframework
case class Computerframework (name:String,popular:Boolean) extends Dataframework
case class Storgeframework (name:String,popular:Boolean) extends Dataframework
object helloPatternMatch {
def main(args: Array[String]): Unit = {
// getSalary("hadoop")
// getSalary("flink")
// getSalary("scala")
getSalary("scalasafdas",6)
getMatchType(100.0)
getMatchType("java")
getValue("spark",Map("spark"->"the hosttest!!"))
getBigDataType(Computerframework("spark",true))
getMatchTypeCollection(Array("scala"))
}
def getSalary(name:String,age:Int){
name match{
case "spark" => println("$ 15k")
case "hadoop" => println("$ 12k")
case _ if name == "scala" => println("$ 14k")
case _ if name == "flink" => println("$ 13k")
case _name if age >= 5 => println(" name : "+ _name +" $ 16k")
case _ => println("$ 8k")
}
}
def getMatchType(msg:Any){
msg match {
case i: Int => println("integer")
case s:String => println("String")
case s:Double => println("Double")
case array:Array[Int]=> println("Array")
case _ => println("other type")
}
}
def getMatchTypeCollection(msg:Array[String]){
msg match {
case Array("scala") => println("1 element")
case Array("scala","java")=> println("2 element")
case Array("spark",_*) => println("many element")
case _ => println("other element")
}
}
def getBigDataType(data:Dataframework){
data match {
case Computerframework(name,popular) => println("name: "+name+" "+ popular)
case Storgeframework(name,popular) => println(name+" "+ popular)
case _ => println("other types")
}
}
def getValue(key:String,content: Map[String,String]){
content.get(key) match {
case Some(value) => println(value)
case None => println("none")
}
}
}
结果
name : scalasafdas $ 16k
Double
String
the hosttest!!
name: spark true
1 element
1 Spark源码的scala模式匹配编程
2 scala模式匹配编程操作实战
A机器发信息给B机器,可能就是case class ,case class不可变
B机器收到,就可以用模式匹配提取信息
package com.dt.spark.scala.bascis
class Dataframework
case class Computerframework (name:String,popular:Boolean) extends Dataframework
case class Storgeframework (name:String,popular:Boolean) extends Dataframework
object helloPatternMatch {
def main(args: Array[String]): Unit = {
// getSalary("hadoop")
// getSalary("flink")
// getSalary("scala")
getSalary("scalasafdas",6)
getMatchType(100.0)
getMatchType("java")
getValue("spark",Map("spark"->"the hosttest!!"))
getBigDataType(Computerframework("spark",true))
getMatchTypeCollection(Array("scala"))
}
def getSalary(name:String,age:Int){
name match{
case "spark" => println("$ 15k")
case "hadoop" => println("$ 12k")
case _ if name == "scala" => println("$ 14k")
case _ if name == "flink" => println("$ 13k")
case _name if age >= 5 => println(" name : "+ _name +" $ 16k")
case _ => println("$ 8k")
}
}
def getMatchType(msg:Any){
msg match {
case i: Int => println("integer")
case s:String => println("String")
case s:Double => println("Double")
case array:Array[Int]=> println("Array")
case _ => println("other type")
}
}
def getMatchTypeCollection(msg:Array[String]){
msg match {
case Array("scala") => println("1 element")
case Array("scala","java")=> println("2 element")
case Array("spark",_*) => println("many element")
case _ => println("other element")
}
}
def getBigDataType(data:Dataframework){
data match {
case Computerframework(name,popular) => println("name: "+name+" "+ popular)
case Storgeframework(name,popular) => println(name+" "+ popular)
case _ => println("other types")
}
}
def getValue(key:String,content: Map[String,String]){
content.get(key) match {
case Some(value) => println(value)
case None => println("none")
}
}
}
结果
name : scalasafdas $ 16k
Double
String
the hosttest!!
name: spark true
1 element
相关文章推荐
- 大数据Spark“蘑菇云”行动-第13课Scala模式匹配实战和Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第14课Scala集合上的函数式编程实战及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第22课:Scala集合和高级函数操作实战及Spark源码鉴赏.
- 大数据Spark “蘑菇云”行动前传第20课:Scala提取器、注解深度实战详解及Spark源码鉴赏大数据Spark “蘑菇云”行动前传第20课:Scala提取器、注解深度实战详解及Spark源码鉴
- 大数据Spark “蘑菇云”行动前传第4课:零基础彻底实战Scala控制结构及Spark源码解析
- 大数据Spark “蘑菇云”行动前传第19课:Scala的包、继承覆写及Spark源码鉴赏
- 大数据Spark“蘑菇云”行动-第11课:Scala面向接口彻底实战和Spark源码鉴赏
- 大数据Spark“蘑菇云”行动-第14课Scala集合上的函数式编程实战及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第23课:Scala外部命令和正则表达式及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第7课:零基础实战Scala面向对象编程及Spark源码解析
- 大数据Spark “蘑菇云”行动前传18课:Scala偏函数、异常、Lazy值编码实战及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第10课:Scala继承彻底实战和Spark源码鉴赏.
- 大数据Spark “蘑菇云”行动前传第2课:Scala零基础实战入门的第一堂课及如何成为Scala高手
- 大数据Spark “蘑菇云”行动前传第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码解析
- 大数据Spark “蘑菇云”行动前传第3课:在IDE下开发第一个Scala程序透彻解析及Scala控制结构详解实战
- 大数据spark 蘑菇云行动前传 第1课:大数据时代的黄金语言scala
- 大数据Spark “蘑菇云”行动第79课:Spark GraphX 代码实战及源码剖析
- 大数据Spark “蘑菇云”行动前传第5课:零基础实战Scala函数式编程及Spark源码解析
- 大数据Spark “蘑菇云”行动前传第9课:Scala类和对象彻底实战和Spark源码鉴赏