《大数据基本处理框架原理与实践》PPT课件(共16次课)第九次课:Scala语言与Spark基本操作.pptVIP

《大数据基本处理框架原理与实践》PPT课件(共16次课)第九次课:Scala语言与Spark基本操作.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Scala语言的函数 Scala中的函数 Scala与Java等面向对象语言的一个重大区别就是引入了函数式编程 在Scala中函数是“头等公民”,可以像任何其他类型一样被传递和操作 也就是说:函数的使用方式和其他数据类型的使用方式完全一致 函数可以有自己的类型,也可以有实例 我们可以将一个函数实例赋值给一个变量 在函数的参数传递过程中我也可以传递一个函数,进而产生高阶函数的概念。 Scala语言的函数 Scala中的函数定义与函数类型 ? //定义一个函数 def sum(val num:Int):Int={ num+=1 } ? 与在类中定义方法的方式相同 ? //sum函数的类型 (Int)= Int ? 函数的类型 函数类型可以理解为不同类型的集合之间的映射关系 具体的函数则是这种集合之间映射关系中的一种实现!! Scala语言的函数 Scala中的匿名函数:lambda表达式 ? //sum函数的另一种表达方式 (num: Int)= {num+=1} //或者去掉后边的大括号 (num: Int)= num+=1 ? lambda表达式的结构 //参数为一个,括号可省去,表达式只有一个,花括号也可以省去 (参数) = {表达式} 参数也就是函数所要接收的参数 表达式就是函数体中的内容 实际中参数和表达式均可以有多个 Scala语言的函数 通过lambda表达式定义一个函数变量 ? //通过Lambda表达方式定义一个函数变量 val func: Int=Int =(num: Int)= num+=1 //上述表达式也等价于 val func: Int=Int = (num)= num+=1 ? 函数变量就是由Lambda表达式所描述的函数的名字 Scala语言的函数 Scala中的高阶函数 既然函数也可以像其他类型的变量一样可以赋值给具体的参数,那么函数就可以作为参数传递给另外一个函数,并且也可以作为返回值由另外一个函数返回 这就产生了高阶函数 ? //定义compute函数 def compute(val func:( Int, Int) = Int, val a:Int, val b:Int):Int={ if(ab){ func(a,b)+a } else{ func(a,b)+b } } //高阶函数的使用 compute((a,b)=a*b, 5, 3)//将Lambda表达式描述的函数传递给compute函数 compute((a,b)=a+b, 3, 8) ? Scala语言的函数 Scala函数中的占位符 在阅读Scala代码时,会时常在Lambda表达式中看到下划线“_” Scala为了让函数更加精简,使用下划线“_”来作为占位符,表示一个参数 ? //高阶函数的语句 compute((a,b)=a+b, 3, 8) //上述语句可以精简为如下 compute(_+_, 3, 8)//每个下划线代表一个参数 ? 我们应用占位符可以将一个变量从一个Lambda表达式的左右两边完全隐去,并使得Lambda表达式变得非常简洁 但是,这种语法也极容易造成误解。所以,我们在实际中可以尽量少用占位符 Scala语言的数组 包括定长数组和变长数组 定长数组是在定义时必须指定数组的长度 变长数组即类似于Java中的ArrayList ? //定义和使用定长数组 val intArray = new Array[Int](3) //长度为3的数组,每个数组元素初始化为0 //给每个数组元素赋值,注意是括号而不是方括号 intArray (0) = 10 intArray (1) = 11 intArray (2) = 12 //或者以这种方式定义一个数组 val intArray2= Array(0,1,2) ? 定长数组 变长数组 Scala语言的列表 Scala列表 列表维护了一个队列,可以添加数据,也可以出队列来获取数据 Scala列表类似于数组,它们之中的所有元素的类型应相同 也可以通过::和:::符号来对列表进行添加数据以及连接两个列表 获取列表尾部的操作返回的也是一个列表 Scala语言的集合 Scala集合 集合Set是不重复元素的集合 Scala语言的元组 Scala元组 元组与数组、列表、集合不同,它是不同类型元素的聚集 ? //定义一个元组 val tuple = (zhangsan, 32, 2013) //获取元组各个维度的数据 tuple._1//第一个维度的数据,zhangsan tuple._2//第二个维度的数据,32 tuple._3//第三个维度的数据,2013 ? Scala语言的映射 Scala映射 映射Map是键值对的集合 我

文档评论(0)

139****1983 + 关注
实名认证
文档贡献者

副教授、一级建造师持证人

从事职业教育近20年,高级职称。

领域认证该用户于2023年06月21日上传了副教授、一级建造师

1亿VIP精品文档

相关文档