Scala实战高手****第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏
本课内容
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
版权声明:本文为博主原创文章,转载请附上博文链接!
Scala实战高手****第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏的更多相关文章
- Scala实战高手****第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏
/** * 函数式编程进阶: * 1.函数和变量一样作为Scala语言的一等公民,函数可以直接赋值给变量 * 2.函数更常用的方式是匿名函数,定义的时候只需要说明输入参数的类型和函数体即可,不需要名称 ...
- Scala高手实战****第20课:Scala提取器、注解深度实战详解及Spark源码鉴赏
Spark中的源码的提取器和注解 @SparkContext.scala @ volatile 线程专用 保证线程间共享内容的一致性 @volatile private var _dagSchedul ...
- Scala实战高手****第16课:Scala implicits编程彻底实战及Spark源码鉴赏
隐式转换:当某个类没有具体的方法时,可以在该类的伴生对象或上下文中查找是否存在隐式转换,将其转换为可以调用该方法的类,通过代码简单的描述下 一:隐式转换 1.定义类Man class Man(val ...
- Scala实战高手****第9课:Scala类和对象彻底实战和Spark源码鉴赏
scala类和对象 RDD中创建_sc和deps相比java更加的简洁. 在Spark的例如SparkContext.sqlSpark等全局成员在完成实例化. 在唯一实例的时候一般不会去使用伴生对象a ...
- Scala高手实战****第19课:Scala的包、继承覆写及Spark源码鉴赏
1.SparkSession.scala //导入某个类 import scala.beans.Introspector //导入某包下所有的类 import scala.beans._ //导入某包 ...
- Scala高手实战****第18课:Scala偏函数、异常、Lazy值编码实战及Spark源码鉴赏
本篇文章主要讲述Scala函数式编程之偏函数,异常,及Lazy 第一部分:偏函数 偏函数:当函数有多个参数,而在使用该函数时不想提供所有参数(比如函数有3个参数),只提供0~2个参数,此时得到的函数便 ...
- Scala实战高手****第15课:Scala类型参数编程实战及Spark源码鉴赏
1.Scala的类和方法.函数都可以是泛型 2.上界:表示泛型的类型必须是某种类型或者其类型的子类,语法:<: ,对类型进行限定 3.下界:表示泛型的类型必须是某种类型或者其类型的父类,语法:& ...
- Scala实战高手****第14课:Scala集合上的函数式编程实战及Spark源码鉴赏
package com.dt.spark.scala.bascis object Functional_Itearal { def main(args: Array[String]): Unit ...
- Scala实战高手****第13课:Scala模式匹配实战和Spark源码鉴赏
package com.dt.spark.scala.bascis class Dataframework case class Computerframework (name:String,popu ...
随机推荐
- html与地图
html:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta ...
- Java Web转发和重定向问题
0x01:转发情况.转发过程中,只请求一次,request对象设置了之后会一直存在,直到下一次请求. 0x02:重定向情况.会发生两次请求,如果设置了request对象,那么重定向之后,request ...
- ios上传图片显示方向错误问题
IOS 上传图片方向显示错误问题 问题描述 在使用苹果手机上传图片的时候,发现传完的图片显示出来方向是错误的,竖着的图片会变成横着显示(少部分安卓手机也存在这个问题) 产生原因 ios 相机加入了方向 ...
- js删除一个父元素下面的所有子元素
比如<div id="ok"><button tpye='button'>111111</button><p>22222</p ...
- 类似web风格的 Winform 分页控件
背景 最近做一个Winform的小程序,需要用到分页,由于之前一直在用 TonyPagerForWinForm.dll ,但该库没有源代码,网上找的也不全面,索性就准备自己改造一个.在园子里翻了一下, ...
- IE 6 position不支持fixed属性的解决方案
抛出另一个问题:IE7已经支持position:fixed了,而IE6却不支持,解决这个问题的办法如下: 现在有一个元素的id是element,它需要实现fixed效果,我们既想要它在正常的浏览器下使 ...
- 设置session过期时间
1如下是登录注册和记住密码的功能: # -*- coding: utf-8 -*- def cms_login(request): if request.method == 'GET': return ...
- python常用模块补充hashlib configparser logging,subprocess模块
一.hashlib模板 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定 ...
- TensorFlow 官方文档中文版【转】
转自:http://wiki.jikexueyuan.com/project/tensorflow-zh/ TensorFlow 官方文档中文版 你正在阅读的项目可能会比 Android 系统更加深远 ...
- 【转】mybatis循环map的一些技巧
原文地址:http://blog.csdn.net/linminqin/article/details/39154133 循环key: <foreach collection="con ...