scala
strong_yu
这个作者很懒,什么都没留下…
展开
-
spark累加器,广播变量
累加器:分布式只写共享变量,只在内部读数据广播变量:分布式只读变量 def main(args: Array[String]): Unit = { var conf = new SparkConf().setAppName("master").setMaster("local[*]") var sc = new SparkContext(conf) var...原创 2020-07-12 23:01:30 · 141 阅读 · 0 评论 -
IDEA 导入spark源码 及问题解决
软件准备1.IDEA 2.maven3.jdk4.scala下载源码https://github.com/apache/spark.git下载需要的版本,解压jar包导入saprk源码编译jar包maven编译代码,选择根目录出现的问题1.scala代码不规范error file=/iteblog/spark-1.3.1/streaming/src/main/scala/org/apache/spark/streaming/StreamingContext.scalame原创 2020-07-08 14:22:24 · 776 阅读 · 0 评论 -
scala 惰性函数
当函数返回值被声明为lazy时,函数的执行将被推迟,直到我们首次对此取值,该函数才会执行。这种函数我们称之为惰性函数def main(args: Array[String]): Unit = { lazy val res = sum(10, 20) println("-----------------") println("res=" + res) }def sum(n1 : Int, n2 : Int): Int = { println("sum() 执行了..")原创 2020-06-30 11:29:23 · 216 阅读 · 0 评论 -
scala 过程(procedure)
过程将函数的返回类型为Unit的函数称之为过程(procedure),如果明确函数没有返回值,那么等号可以省略def f(name:String) :Unit={ println(name+"hello") }注意区分: 如果函数声明时没有返回值类型,但是有 = 号,可以进行类型推断最后一行代码。这时这个函数实际是有返回值的,该函数并不是过程。(这点在讲解函数细节的时候讲过的.)...原创 2020-06-30 11:17:19 · 234 阅读 · 0 评论 -
scala 参数类型推断
参数推断省去类型信息(在某些情况下[需要有应用场景],参数类型是可以推断出来的,如list=(1,2,3) list.map() map中函数参数类型是可以推断的),同时也可以进行相应的简写参数类型推断写法说明/规则1.参数类型是可以推断时,可以省略参数类型2.当传入的函数,只有单个参数时,可以省去括号3.如果变量只在=>右边只出现一次,可以用_来代替 println(list.map((x:Int)=>x+1)) println(list.map((x)=>x+1))原创 2020-06-30 11:11:25 · 248 阅读 · 0 评论 -
Scala 函数柯里化
柯里化指的是将原来接受多个参数的函数变成新的接受一个参数的函数的过程, 新函数的参数接受原来的第二个参数为唯一参数, 如果有n个参数, 就是把这个函数分解成n个新函数的过程(1)函数编程中,接受多个参数的函数都可以转化为接受单个参数的函数,这个转化过程就叫柯里化(2)柯里化就是证明了函数只需要一个参数而已。其实我们刚才的学习过程中,已经涉及到了柯里化操作。(3)不用设立柯里化存在的意义这样的命题。柯里化就是以函数为主体这种思想发展的必然产生的结果。(即:柯里化是面向函数思想的必然产生结果)传统方式,原创 2020-06-30 11:03:39 · 401 阅读 · 0 评论 -
scala流程控制语句 if for while 中断 break
ifif (条件表达式) { 执行代码块}forfor(i <- 1 to 3){ print(i + " ")}说明i 表示循环的变量, <- 规定好 to 规定i 将会从 1-3 循环, 前后闭合 (包括1 和 3)for(i<- 1 until 3){ println(i) }说明:这种方式和前面的区别在于 i 是从1 到 (3-1)前闭合后开的范围for(i<- 1 to 3 if i!=2){ pri原创 2020-06-30 10:03:46 · 230 阅读 · 0 评论