本课内容
1.Map和Tuple在Spark源码中的鉴赏
2.Map和Tuple代码操作实战
 ------------------------------------------------------------------------------------------------------------------------
/**
 *  Scala中最常见的两种数据结构:Map 和 Tuple
 *  
 *  Map初步感受就是key,value方式,key即是值的索引,排列非常规按照Hash的方式,
 *  不是说插入了3个元素后第4个就在第3个后面。它可能第4个元素就在第2个后面(因为hashcode排在第2后面)
 *  
 *  为什么说Map的key,value类型非常重要:最原始,最基础,最常用的数据结构。map中的key就是内容
 *  value的名字,如有有海量的数据,基于map检索速度非常快(数组则非常慢,尤其是修改的时候),从计算机
 *  运行的效率来讲,我们也需要这种数据结构
 *  
 *  Tuple是Scala相比JAVA中特有的一种数据结构,前面无论谈什么数据结构(Map,数组,list)这些都有
 *  具体的数据类型,但在现实社会中我们要表达一种观点,这个观点就是有不同的数据类类型放在一个集合里面。
 *  
 *  Array数组它的类型必须是一致的,要么是这个类型或者这个类型的子类型实例。而Tuple是不拘一格的,非常大
 *  的跃进。
 *  
 * 1.默认情况下Map构造的是不可变的集合,里面的内容不可修改,一旦修改就变成新的Map,原有的Map内容保持不变
 * 2.Map的实例是调用工厂模式apply来构造Map实例,而需要注意的是Map是接口,在apply中使用了具体的实现
 * 3.如果想直接new出Map实例,则需要使用HashMap等具体的Map子类
 * 4.查询一个Map中的值一定是采用getOrElse的语法的,一方面是在key不存在的情况下不报异常,另外还有一个
 * 神奇的作用就是提供默认值,而关于默认值提供在实际开发中至关重要,在Spark中很多默认的配置都是通过getOrElse
 * 的方式来实现的
 * 
 * 5.使用SortedMap可以得到排序的Map集合
 * 6.LinkedHashMap可以记住插入的数据的顺序,
 * 
 * 7.Tuple中可以有很多不同的数据("zhangs","male",30)
 * 8.在企业级实际开发大数据的时候一定会反复的使用Tuple来表达数据结构,以及使用Tuple来处理业务逻辑
 * 9.Tuple的另外一个非常重要的使用时作为函数的返回值,在Tuple中返回若干个值,以SparkContext源码为例来说明
 * // Create and start the scheduler
 *  val (sched,ts) = SparkContext.createTaskScheduler(this,master)
 *  _schedulerBackend = sched
 *  _taskScheduler = ts
 */
---------------------
作者:张涵钧
来源:CSDN
原文:https://blog.csdn.net/shunhack/article/details/52587837
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. jquery mobile
  2. 使用Burpsuite抓取手机APP的HTTPS数据
  3. Python基于pandas的数据处理(二)
  4. Java线程面试题 Top 50 (转载)
  5. UNIX/Linux下C语言的学习路线
  6. unity, 同步物体坐标一定要在LateUpdate中进行
  7. CSS构造模型
  8. Selenium2+Python自动化测试实战
  9. Apache-rhel5.8环境下编译安装
  10. Ubuntu12.04 cuda5.5安装
  11. nginx跳转
  12. C#中的??是什么意思
  13. Linux学习之Linux目录及文件系统
  14. asp.net mvc项目实记-开启伪静态-Bundle压缩css,js
  15. 论文泛读·Adversarial Learning for Neural Dialogue Generation
  16. Django完整的开发一个博客系统
  17. ToolBar与AppcompatAcitivity实现浸入式Statusbar效果
  18. 深度学习识别CIFAR10:pytorch训练LeNet、AlexNet、VGG19实现及比较(二)
  19. 用python3读CSV文件,出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid con
  20. (办公)MojoExecutionException

热门文章

  1. lwIP RAW_API
  2. 马上给Meltdown和Spectre漏洞打补丁
  3. C++ Review
  4. PHP等比例生成缩略图
  5. Spring - IoC(12): 属性占位符
  6. bzoj4602 [Sdoi2016]齿轮
  7. NYOJ 170 网络的可靠性 (数学)
  8. requests上传文件
  9. 智联招聘获取python岗位的数据
  10. Java坦克大战 (三) 之可完全控制坦克朝八个方向运动