scala语言很简洁,让人看起来很舒服的感觉,例如查看字符串中是否存在大写字符,
val nameHasUpper=name.exist(_.isUpperCase)一句话就解决。
例如wordcount
val rdd=sc.textFile("").filter(_.split("\t")).map(x=>(x(1),1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))
1 定义
scala 中定义变量用var,定义常量用val。
定义方法:def function(){}
带有返回值类型的方法 def function(a:Int,b:Int):Int={}
2 注意点
scala区分大小写
所有类名第一个字母大写
所有方法名称第一个字母小写
程序文件名与该对象名称完全匹配
Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。
3 伴生对象与伴生类
伴生对象与伴生类本质上时不同的两个类,伴生类和伴生对象之间可以相互访问到对方的成员变量,包括私有的成员变量和方法。
4 scala元组tuple
tuple和List一样,定义了里面的元素是不可变的,与List不同的是tuple可以包含不同的类型的元素。
如果需要在方法中返回多个对象时,Java通常是创建javabean,scala可以返回元祖
val pair=(10,"today",false)
println(pair._1)
5 scala集合可以分为可变集合(scala.collection.mutable)与不可变集合(scala.collection.immutable)
默认是使用不可变集合,因此如果需要使用可变集合需要导入可变集合的包
import scala.collection.mutable.Map
val tremap=Map[Int,String]()