变量的定义
val a: Int = 1
var b = 2
方法和函数
区别:函数可以作为参数传递给方法
方法:
def test(arg: Int): Int=>Int ={
方法体
}
val fun = (test _: Int =>(Int=>Int))=>函数体
逻辑执行语句
val a = if(条件){
执行逻辑
返回值
}else{
执行逻辑
}
while(条件){
执行逻辑
}
val arr = Array(1,2,3,4,5)
for(i <- 0 to arr.length ){
arr(i)
}
for(i <- arr){
i
}
集合操作
Array ArrayBuffer List ListBuffer set Map tuple
val arr = Array(1,2,3,4,5)
arr(0)
arr += 9
val arrb = ArrayBuffer(1,2,3,4,5)
arrb(0)
val list = List(1,2,3,4)
val tuple = (1,"string")
tuple._1
val map = Map("a"->1)
val map = Map(("a",1))
类(重要)
类的主构造器:主构造器里面的变量会被执行,方法会被加载,调用的方法会被执行
calss test(){
val int = 1
def test(){
}
…………
…………
…………
test
}
辅助构造器:重载
extends with
集合的高级操作(重要)
map:将集合中的变量循环出来做操作
flatMap:将集合中的参数压循环出来做操作
val arr = Array("hello tom","hello lilei","hello hanmeimei")
map:(hello tom),(hello lilei),(hello hanmeimei)
flatMap:(hello tom hello lilei hello hanmeimei)
filter:过滤想要的元素
groupBy:按照key进行分组,分组之后value合并到Array
mapValues:针对kv类型的数据,只对value进行操作
sortBy:针对某个元素进行排序
val arr Array("hello tom","hello lilei")
val result = arr.flatMap(x => x.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.size).toList.sortBy(_._2).recerse
val result = arr.flatMap(_.split(" ")).map((_,1)),reduceByKey(_+_).sortBy(_._2,true)
高级特性
高阶函数:把函数作为参数传递给方法或者函数,函数在函数式编程中是第一位的。
map(函数)
隐式转换(PreDef):对类的增强,Int类没有to这个方法,然后再RichInt类中包含这个方法,我们只需要在某个地方将Int转换成RichInt,然后在用的地方import就ok了
class RichFile(file: File){
def read(file:File):String={
Source.fromFile(file.getPath).mkString
}
}
object RichFile{
implict def file2RichFile(file:File)=RichFile(file)
}
object Test{
def main(args:Array[String]){
import RichFile.file2RichFile
val file = new File("c://words.txt").read
}
}
柯里化:将原来接收多个参数的方法或者函数,编程接收一个一个的方法或者函数,返回的是函数
def test(a:Int)(b:Int)(c:Int){
a+b+c
}
val fun = def(1) _
actor 并发编程的接口(非常重要)
actor:用消息传递的方式实现了并发编程,写起来像线程,玩起来像socket
AKKA:actorSystem actOf
spark(what、how、why、use、运维<源码的理解>)
课程目标
1、知道spark是干啥的
2、会安装spark
3、会写spark程序(scala、python、R、java)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。