Scala
文章平均质量分 81
sunhaoning
这个作者很懒,什么都没留下…
展开
-
Scala学习--函数式编程
将函数赋值给变量//scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量//scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线def sayHello(name:String) { println("Hello," + name)}val sayHelloFunc = sayHello _sayHelloFunc("le原创 2017-04-09 08:23:28 · 614 阅读 · 0 评论 -
Scala学习—隐式转换与隐式参数
scala隐式转换,其实最核心的就是定义意识转换函数,即implicit conversion function。定义的隐式转换函数,只要在编写的程序内引入,就会被scala自动使用。scala会根据隐式转换函数的签名,在程序中使用到隐式转换函数接收的参数类型定义的对象时,会自动将其传入隐式转换函数,转换为另外一种类型的对象并返回。这就是“隐式转换”。隐式转化通常不会由用户手动调用,而是由sc原创 2017-07-26 13:59:10 · 287 阅读 · 0 评论 -
Scala学习—类型参数
泛型类使用泛型类,通常是需要对类中的某些成员,比如field和method中的参数或变量,进行统一的类型限制,这样可以保证程序更好的健壮性和稳定性。如果不使用泛型进行统一的类型限制,那么在后期程序运行过程中,难免会出现问题,比如传入了不希望的类型,导致程序出问题。在使用类的时候,如果创建类的对象,将类型参数替换为实际的类型,即可。或者直接给使用了泛型类型的field赋值时,scala会原创 2017-07-26 13:20:24 · 230 阅读 · 0 评论 -
Scala学习—模式匹配
scala的模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配、对Array和LIst的元素进行匹配、对case class进行匹配、甚至对有值或没值(Option)进行匹配。scala是没有java中的switch case语法的,相对应的,scala提供了更加强大的match case语法,即模式匹配,替代switch case,match case也被称为模式匹配scala的ma原创 2017-07-26 10:05:18 · 742 阅读 · 0 评论 -
Scala学习—函数式编程之集合操作
scala的集合体系结构//scala中的集合体系结构主要包括:Iterable、Seq、Set、Map。其中Iterable是所有集合trait的根trait。这个结构与java的集合体系非常相似。//scala中的集合是分成可变和不可变两类集合的,其中可变集合就是说,集合的元素可以动态修改,而不可变集合的元素在初始化之后,就无法修改了。分别对应scala.collection.muta原创 2017-07-23 10:10:23 · 359 阅读 · 0 评论 -
Scala学习—函数式编程
将函数赋值给变量//scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量//scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线def sayHello(name:String) { println("Hello," + name)}val sayHelloFunc = sayHello _sayHelloFunc("le原创 2017-07-23 09:29:51 · 251 阅读 · 0 评论 -
Scala学习—面向对象编程之Trait
将trait作为接口使用//scala中的Trait是一种特殊的概念//在Trait中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可//类可以使用extends关键字继承Trait,注意,这里不是implement,而是extends,在scala中没有implement的概念,无论继承类还是Trait,统一都是extends//类继承Trait后,必须原创 2017-07-22 20:49:20 · 211 阅读 · 0 评论 -
Scala学习—面向对象编程之继承
extends//Scala中,让子类继承父类,也是使用extends关键字//继承就代表,子类可以从父类继承父类的field和method;然后子类可以在自己内部放入父类所没有,子类特有的field和method;使用继承可以有效复用代码//子类可以覆盖父类的field和method;但是如果父类用final修饰,field和method用final修饰,则该类是无法被继承的,fie原创 2017-07-22 15:03:18 · 198 阅读 · 0 评论 -
Scala学习—面向对象编程之对象
object//object,相当于class的单个实例,通常在里面放一些静态的field或者method//第一次调用object的方法时,就会执行object的constructor,也就是object内部不在method中的代码;但是object不能定义接受参数的constructor//注意,object的constructor只会在其第一次被调用时执行一次,以后再次调用就不会原创 2017-07-21 22:21:01 · 244 阅读 · 0 评论 -
Scala学习—面向对象编程之类
定义一个简单的类//定义类,包含field以及方法class HelloWorld {private var name = "leo"def sayHello(){print("Hello," + name)}def getName = name}//创建类的对象,并调用其方法val helloWorld = new HelloWorldhelloW原创 2017-07-21 10:33:27 · 296 阅读 · 1 评论 -
Scala学习—Map与Tuple
创建Map//创建一个不可变的Mapval ages = Map("Leo"->30,"Jen"->25,"Jack"->23)ages("Leo")=31//创建一个可变的Mapval ages = scala.collection.mutable.Map("Leo"->30,"Jen"->25,"Jack"->23)ages("Leo")=31//使用另外一种方式定原创 2017-07-21 09:37:07 · 197 阅读 · 0 评论 -
Spark基础transformation操作实例(Scala版)
1.map算子def map() { val conf = new SparkConf() .setAppName("map") .setMaster("local") val sc = new SparkContext(conf) val numbers = Array(1,2,3,4,5) val n原创 2017-04-23 19:08:38 · 400 阅读 · 0 评论 -
Scala学习--Trait
将trait作为接口使用//scala中的Trait是一种特殊的概念//在Trait中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可//类可以使用extends关键字继承Trait,注意,这里不是implement,而是extends,在scala中没有implement的概念,无论继承类还是Trait,统一都是extends//类继承Trait后,必须转载 2017-04-08 20:28:56 · 491 阅读 · 0 评论 -
RDD转换为DataFrame案例
文件students.txt中内容如下:1,leo,172,marry,173,jack,184,tom,191. 使用反射方式将RDD转换为DataFrameJava代码如下:public class RDD2DataFrameReclection { public static void main(String[] args) { SparkConf c原创 2017-08-15 20:01:38 · 1633 阅读 · 0 评论