本課課程:
- Map和Tuple及Spark源码中的鉴赏
- Map和Tuple代碼操作实战
Map和Tuple及Spark源码中的鉴赏
Map 的例子
HashMap 是 Map 的子類
這里也是 Map 的操作
Tuple 的例子
Map和Tuple代碼操作实战
我認為的 Map 是 Key Value 的方式,
Map 表達了客觀世界存在的一種描述,給它弄個名字,你確實可以認為是指針的方式,而且速度非常快。
Tuple 是表現了我們世界存在的一種狀態就是,你不能總是說一個數組就只有一種類型,
- 默认情况下Map构造的是不可变的集合,里面的内容不可修改,一旦修改就变成新的Map,原有的Map内容保持不变;
insert[10] - Map的实例是调用工厂方法模式apply来构造Map实例,而需要主要的是Map是接口,在apply中使用了具体的实现;调用工厂方法模式 apply 来构造Map实例,而需要主要的是Map是接口,在apply中使用了具体的实现
- 如果想直接new出Map实例,则需要使用HashMap等具体的Map子类;你是不可以直接創建帶有泛型類的 Map 元數,在這個時候就需要創建 HashMap 來表明空 Map 值
- 查询一个Map中的的值一定是采用getOrElse的语法的,一方面是在key不存的情况下不报告异常,另外还有一个神奇的作用就是提供默认值而关于默认值的提供在实际开发中至关重要,在Spark中很多默认的配置都是通过 getOrElse 的方式来实现的;
使用 getOrElse 這樣就不會報異常了
如果只想查詢 Map 裡的 Key 或者是 Value, 可以用 keySet, values 的函数
- 使用SortedMap可以得到排序的Map集合;
- LinkedHashMap可以记住插入的数据的顺序,这在实际开发中非常有用
- Tuple中可以有很多不同类型的数据,例如("wangjialin", "male",30, "I am into spark so much!!!")
- 在企业级实际开发大数据的时候一定会反复的使用Tuple来表达数据结构,以及使用Tuple来处理业务逻辑
- Tuple的另外一个非常重要的使用是作为函数的返回值,在Tuple中返回若干个值,以SparkContext源码为例来说明
感谢阅读
Janice
——————————————————————————————–—————————————————————————
Sharing is Good, Learning is Fun.
今天很残酷、明天更残酷,后天很美好。但很多人死在明天晚上、而看不到后天的太阳。 – 马云 Jack Ma
以下是笔记参考来源:
资料来源于: 大数据Spark “蘑菇云”行动前传第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏
视频来源于: http://www.tudou.com/listplay/rd3LTMjBpZA/zwZQOmH0aGA.html
如果您对大数据Spark感兴趣,可以免费听由王家林老师每天晚上20:00开设的Spark永久免费公开课,地址YY房间号:68917580