您的位置:首页 > 编程语言

第3课:Scala函数式编程彻底精通及spark源码阅读

2016-01-04 16:18 405 查看
Scala最迷人的方式是函数式编程
Spark中的多数计算都是用函数式编程的,处理数据的时候都是针对集合的,一般都会作用的集合之上。
高阶函数,是scala和java最大不同点,最大价值
今天讲每一个例子没一点,都必须掌握,开启全新的编程人生
函数和变量都一样的,函数是独立使用,独立存在
fun1_v =fun1 _ 必须空格加下划线
Fun2 指向匿名函数 =>指向函数体



高阶函数是函数的参数是函数,这样的功能是非常的强大的





闭包在spark里面到处可见,下面spark就是闭包的例子





Reduceleft必须掌握



今天的作业是统计一个文件夹下面所有文件中所有单词出现的总次数(目前只实现了单个字符,对于多个字符后续还需要优化)

var dir =   newFile("E:\\study\\spark-1.6.0\\spark-1.6.0\\data\\mllib\\als")
var num:Int = 0
var keyword="8"
subdirs(dir)
def subdirs(dir: File): Iterator[File] = {
val irectory =dir.listFiles.filter(_.isDirectory)
val files = dir.listFiles.toIterator
for (file <- files)
{
vallines = scala.io.Source.fromFile(file).getLines().toArray
for (line <- lines)
{
var length = line.split(keyword).length
num = num +length-1
}
}
files ++irectory.toIterator.flatMap(subdirs _)

}

println("num:" + num)
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: