第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏
来源:互联网 发布:apache 配置https证书 编辑:程序博客网 时间:2024/06/05 15:43
本节课实战代码:
蘑菇云Spark&Scala详解搜狐视频地址:http://my.tv.sohu.com/us/146052161/84680363.shtml
import scala.collection.mutable.HashMapobject 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
0 0
- 第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码解析
- 第21课:scala文件和xml操作实战及spark源码鉴赏
- 第22课: Scala集合和高级函数操作实战及Spark源码鉴赏
- 大数据Spark“蘑菇云”行动-第10课:Scala继承彻底实战和Spark源码鉴赏
- 大数据Spark“蘑菇云”行动-第13课Scala模式匹配实战和Spark源码鉴赏
- 第14课Scala集合上的函数式编程实战及Spark源码鉴赏
- 第15课:scala类型参数编程实战及spark源码鉴赏
- 第13课:Scala模式匹配实战及Spark源码鉴赏
- 第15课:Scala类型参数编程实战及Spark源码鉴赏
- 第16课:Scala implicits编程彻底实战及Spark源码鉴赏
- 第16课:Scala implicits编程彻底实战及Spark源码鉴赏
- 第9课:Scala类和对象彻底实战和Spark源码鉴赏
- 第4课:零基础彻底实战Scala控制结构及Spark源码解析
- 第5课:零基础实战Scala函数式编程及Spark源码解析
- 第6课:零基础实战Scala集合操作及Spark源码解析
- 第7课:零基础实战Scala面向对象编程及Spark源码解析
- 第11课:scala面向接口编程彻底实战和spark源码鉴赏
- ubantu 配置 erlang 18.0 + emacs + autocomplete
- OpenJ_Bailian - 4120
- linux上怎么快速删除一个目录
- 一致性哈希算法(consistent hashing)
- Swift的重点笔记(基本语法)
- 第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏
- Medium 136题 Single Number
- HDU1231(DP)
- AJAX http请求 XMLHttpRequest
- 单片机引脚控制继电器最简单的电路方式
- 虚拟机下linux如何使用mount挂载cdrom
- JavaScript常用语法
- 一个集合去掉另一个集合中的内容,可以用来去停用词
- kmp算法原理详解