本节课实战代码:
蘑菇云Spark&Scala详解搜狐视频地址:
http://my.tv.sohu.com/us/146052161/84680363.shtml
import scala.collection.mutable.HashMap
object HelloMapTupleOps {
def main(args: Array[String]): Unit = {
//1、默认情况下,Map构建的是不可变的集合,Map构建调用的是工厂方法模式apply,调用的是Map接口,在apply中使用了具体的实现
//2、如果想直接new出Map实例,则需要使用HashMap等具体的Map子类;
//3、查询一个Map中的值一定是采用getOrElse的语法,一方面是key不存在的情况下不会报异常,另一个就可以提供默认值,在Spark中很多默认的配置都是通过getOrElse的方法来实现的;
val map = Map(1 -> "Spark", 2 -> "Hadoop")
//定义可变的Map
val map2 = scala.collection.mutable.Map(13 -> "Scala", 6 -> "Spark")
for ((key, value) <- map2) {
println(key + ":" + value)
}
//检索Map中的值方式getOrElse,提供默认值,不会报异常
println(map2.getOrElse(3, "Flink"))
map2 += (3 -> "Flink") //添加元素
map2 -= (2) //删除元素
//读取Map中的key值列表
for (key <- map2.keySet) println(key)
//读取Map中的value值列表
for (value <- map2.values) println(value)
//定义排序的Map,字母按ASCII进行排序
val map3 = scala.collection.immutable.SortedMap(3 -> "Spark", 2 -> "Hadoop")
for ((key, value) <- map3) println(key + ":" + value)
//定义LinkedHashMap,记录插入的顺序
val map4 = new scala.collection.mutable.LinkedHashMap[String, Int]
map4 += ("Spark" -> 6, "Hadoop" -> 10, "Flink" -> 3)
for ((key, value) <- map4) {
println(key + ":" + value)
}
//HashMap可以定义空的结构
val hashMap = HashMap[String, Int]()
/**
* Tuple定义
*/
val tupe1 = ("Spark", 6)
println(tupe1._1 + ":" + tupe1._2)
//Tuple可以作为函数的返回值
val (name, age) = fun4
}
def fun4: (String, Int) = {
val tuple2 = ("Spark", 4)
tuple2
}
备注:
资料来源于:DT_大数据梦工厂(Spark"蘑菇云"行动)
更多私密内容,请关注微信公众号:DT_Spark
如果您对大数据Spark感兴趣,可以免费听由王家林老师每天晚上20:00开设的Spark永久免费公开课,地址YY房间号:68917580