Map 、Tuple 是scala 中比较常见的数据类型,在spark 中经常使用。
实例代码:
//一、不可变map操作
//1.不可变map定义
val map = Map("book" -> 10, "gun"->18,"ipad" -> 1000)
println("map=" + map)
//2. map的取值
var book = map.getOrElse("booke",1)
println("book=" + book)
//3. map 修改
// map += ("book" -> 20) ,不允许
//4. map 新增
// map += ("app" -> 100)
//5.map的遍历
for((k,v) <- map) yield(k,v * 3)
//二、可变map操作
//1.可变map定义
val map2 = scala.collection.mutable.Map("book" -> 10, "gun"->18,"ipad" -> 1000)
println("map2=" + map2)
//2. map的取值
var book2 = map2.getOrElse("booke",1)
println("book=" + book2)
//3. map 修改
map2 += ("book" -> 20) //,不允许
//4. map 新增
map2 += ("app" -> 100)
//5.map的遍历
for((k,v) <- map2) yield(k,v * 2)
//三、排序map操作
//1.可变map定义
val map3 = scala.collection.immutable.SortedMap("scala" -> 10, "Hadoop"->18,"spark" -> 1000)
println("map2=" + map3)
//2. map的取值
var book3 = map3.getOrElse("booke",1)
println("book=" + map3)
//3. map 修改
//map3 += ("book" -> 20) //,不允许
//4. map 新增
//map3 += ("app" -> 100)
//5.map的遍历
for((k,v) <- map3) yield(k,v * 2)
//四、tuple 操作
val tuple = (1,2,3,"rocky","spark")
//取值方式
println(tuple._3)
//模式匹配
val (first,second,thirda,fourth,fifth) = tuple
//模式匹配,去掉不要字段
val (f,s,_,_,_) = tuple
//zip 操作
val symboles = Array("[","-","]")
val counts = Array(2,5,3)
val pairs = symboles.zip(counts)
for ((x,y) <- pairs) print(x * y)
println
val aa ="Rocky_Spark".partition(_.isUpper)
println("aa=" + aa)
}
参考文档
百度网盘:http://pan.baidu.com/share/home?uk=4013289088#category/type=0
微信号:18610086859
DT大数据微信公众账号:DT_Spark
DT大数据梦工厂交流群:462923555/418110145/437123764