微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大数据学习——spark笔记

变量的定义

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] 举报,一经查实,本站将立刻删除。

相关推荐