您的位置:首页 > 大数据

大数据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机器收到,就可以用模式匹配提取信息

 

 



 



 

 

 



 

 

 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

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐