__Scala
冥想者-定
缘起性空
展开
-
Scala Hello World
刚刚开始学习spark,需要用到scala,所以打算开始自学scala。前提是已经安装好jdk。(1)安装scala在官网上下载scala,本人下载scala-10.04 http://www.scala-lang.org/download/all.html其中windows下有两个版本。msi和exe,具体区别可百度查看。这边随便找了一个说明http://zhidao.转载 2015-04-05 15:53:08 · 473 阅读 · 0 评论 -
scala 集合
课程内容:基本数据结构列表 List集 Set元组 Tuple映射 Map选项 Option函数组合子mapforeachfilterzippartitionfinddrop and dropWhilefoldRight and foldLeftflattenflatMap扩展函数组合子Ma转载 2016-06-08 18:20:49 · 449 阅读 · 0 评论 -
scala 闭包
闭包: 闭包的构成 1、需要在一个区间里面定义一个其他的变量,比如我们叫int a=3; 2、需要在一个函数里面引用这个 变量 ,那么我们就需要 在这个函数里面引用这个a 3、这样就构成这个闭包 4、实际上闭包是一个函数而已闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。闭包通常来讲可以简单的认为是可以访问一个函数里面局部变转载 2016-07-23 18:16:59 · 292 阅读 · 0 评论 -
Scala 函数柯里化(Currying)
柯丽华 ,其实很简单,1、有一个函数,原来接受两个参数2、现在我们将这个两个参数拆开3、这样我们就得到了两个一个参数的函数了4、这样我们调用的时候,就需要分别传入两个参数了5、这样就叫柯丽华, 虽然我不知道这个玩意的用途是什么柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第转载 2016-07-23 18:19:26 · 1141 阅读 · 0 评论 -
Scala 提取器(Extractor)
提取器: 1、其实伴生对象有两个方法 ,A: apply B : unapply方法 2、我们使用apply方法来构造我们的一个对象, 不需要使用new关键字了。对吧。 3、我们使用unapply方法来提取我们的值。 4、这样的行为叫提取器, 5、默认的行为,使用对象进行模式匹配的时候,会默认调用unapply方法,进行模式匹配转载 2016-07-24 10:04:02 · 364 阅读 · 0 评论 -
scala 隐士参数
Implicit隐士参数,很高明的一个地方1、就是在定义方法的时候,我们多定义了一个隐士参数的地方2、我们的隐士参数,定义的地方,在调用的时候,不比显示的提供3、但是我们的没有调用,实际上会调用到这个方法4、相当于偷懒了,提前准备好了,然后隐藏了起来,实际上是使用到了的。Implicitimplicit parameters 隐式参数如果参数定义为implici转载 2016-07-24 12:04:24 · 793 阅读 · 0 评论 -
scala 空对象
空对象Nil,Null,null,Unit,Nothing,None1) Nothing 是trait,定义为:final trait Nothing extends Any。Nothing处于Scala类型体系的最底层,是所有类型的子类型,Nothing没有实例。2) Null 是trait,定义为:final trait Null extends AnyRef 。Null是所有引用转载 2016-07-24 12:41:00 · 4083 阅读 · 0 评论 -
view
view,就像类型边界,要求对给定的类型存在这样一个函数。您可以使用class Container[A 复制代码这是说 A 必须“可被视”为 Int 。方法可以通过隐含参数执行更复杂的类型限制。例如,List支持对数字内容执行sum,但对其他内容却不行。可是Scala的数字类型并不都共享一个超类,所以我们不能使用T sum转载 2016-07-24 12:41:31 · 262 阅读 · 0 评论 -
scala入门教程:scala的数据类型
byte8bit的有符号数字,范围在-128 -- 127Short16 bit有符号数字,范围在-32768 -- 32767Int32 bit 有符号数字,范围 -2147483648 到 2147483647Long64 bit 有符号数字,范围-9223372036854775808 到 92233720368转载 2016-07-25 22:45:25 · 308 阅读 · 0 评论 -
一个为spark批量导入数据到hbase的库
https://github.com/TopSpoofer/hbrdd转载 2016-07-25 23:23:00 · 2056 阅读 · 0 评论 -
Scala类型参数中协变(+)、逆变(-)、类型上界(<:)和类型下界(>:)的使用
有位je上的同学来短信向我问起了Scala类型参数中协变、逆变、类型上界和类型下界的使用方法和原理,自己虽然也刚学不久,在主要调查了《Programing in Scala》的19章后,试着在下面做一个总结。如有错误之处还请各位指正。 先说说协变和逆变(实际上还有非变)。协变和逆变主要是用来解决参数化类型的泛化问题。由于参数化类型的参数(参数类型)是可变的,当两个参数化类型的参数是继承关系转载 2016-07-28 09:31:35 · 355 阅读 · 0 评论 -
sparkSQL中 DataSet 和 DataFram区别
1/dataSet 可以定义类型,可以定义类型,能对各种列进行各种精细操作2/dataFram 能注册成表。然后直接写sql语句就能操作了================DataFram==============================================val df = spark.read.json("examples/src/main/转载 2016-07-28 15:37:27 · 1160 阅读 · 0 评论 -
case class 跟普通class有什么区别
case class 跟普通class有什么区别1、初始化的时候,不需要new,当然你也可以加上,普通类一定需要加上new2、toString的实现更加漂亮3、默认实现了equals hashcode4、默认是可以序列化的,也就是实现了Serializable5、自动从scala.Producet中继承了一些函数6、case class构造函数的参数是publi转载 2016-07-28 17:25:44 · 3987 阅读 · 0 评论 -
Scala开发教程(50): Ordered Trait
http://www.imobilebbs.com/wordpress/archives/4954比较对象也是胖接口来的比较方便的一个应用领域,当你需要比较两个有顺序关系的对象时,如果只需要一个方法就可以知道需要比较的结果就非常便利。比如,你需要“小于”关系,你希望使用“< “比较就可以了,如果是“小于等于”,使用”<=”就可以。如果使用瘦接口来定义类,也许你只定义了一个<比较方法,那转载 2016-07-31 10:05:48 · 479 阅读 · 0 评论 -
Scala yield 关键字
我看了《Programming in Scala》一书,仍然对 Scala yield 关键字的理解不甚清楚。起初我以为 Scala yield 的与 Ruby 的 yield 是一样,Ruby 中 yield 是被传入代码块的占位符。Scala 中的 yield 关键字好像总是在 for 循环中用的. 下面一些例子可以帮助你更好的理解 yield 关键字。下面是摘自 《Programming转载 2016-10-21 10:25:54 · 441 阅读 · 0 评论 -
scala 元祖
元祖元祖,就是不同类型值的聚集。元祖的值是通过将单个的值包含在圆括号中构成的。下面来看看元祖的一些使用(赋值、获取值)。scala> ("blog",".","xiaoxiaomo",19)res31: (String, String, String, Int) = (blog,.,xiaoxiaomo,19)scala> res31._1 //可以看出元祖的下标是从1开始转载 2016-06-08 11:19:17 · 1812 阅读 · 0 评论 -
IntelliJ IDEA 开发scala
转 http://www.cnblogs.com/Leo_wl/p/4466616.html IntelliJ IDEA 开发scala1、下载安装IntelliJ IDEA,并安装scala插件我下载的是linux的13版本,linux版本是绿色版本,有一个启动的脚本,运行就可以了,也可以在linux建立快捷方式。windows的版本下载,点下一步,下一转载 2015-09-07 15:04:49 · 666 阅读 · 0 评论 -
scala编程
因此Scala编程的一个基本原则上,能不用Vars,尽量不用vars,能不用mutable变量,尽量不用mutable变量,能避免函数的副作用,尽量不产生副作用。能不用vars, 尽量不使用 vars能不使用mutable变量,尽量不使用mutable变量能避免函数的副作用,尽量不产生副作用。转载 2015-09-07 15:55:15 · 302 阅读 · 0 评论 -
scala 闭包
var y = 0var sum -==(x: Int) => x+y y =100 sum(3) 居然可以这样定义感觉跟js差不多了在java里面,感觉这个y好像是一个静态变量一样了而且y变化sum函数能捕捉到y的变化这样是闭包,捕捉 一个类的全局变量 ,是一个函数能够解析转载 2015-04-19 17:39:39 · 356 阅读 · 0 评论 -
从Eclipse转移到IntelliJ IDEA一点心得
转 http://www.ituring.com.cn/article/37792本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用。刚刚从Eclipse转过来的很多人开始可能不适应,我就把使用过程中的一些经验和常用功能分享下,当然在看这篇之前推荐你先看完IntelliJ IDEA 的 20 个代码自动完成的特性,这篇文章对自动完成的特性介绍转载 2015-04-26 12:01:56 · 922 阅读 · 0 评论 -
akka 官方文档中文版
http://www.gtan.com/akka_doc/ akka转载 2015-04-25 17:58:57 · 7575 阅读 · 0 评论 -
akka介绍
我们相信编写出正确的具有容错性和可扩展性的并发程序太困难了。这多数是因为我们使用了错误的工具和错误的抽象级别。Akka就是为了改变这种状况 而生的。通过使用Actor模型我们提升了抽象级别,为构建正确的可扩展并发应用提供了一个更好的平台。在容错性方面我们采取了“let it crash”(让它崩溃)模型,人们已经将这种模型用在了电信行业,构建出“自愈合”的应用和永不停机的系统,取得了巨大成功。Ac转载 2015-04-25 17:20:54 · 590 阅读 · 0 评论 -
scala 特性之一 lazy关键字
惰性计算 惰性 求值 特别用于 函数式编程语言 中。在使用延迟求值的时候,表达式不在它被绑定到变量之后就立即求值,而是在该值被取用的时候求值 。 除可以得到性能的提升外,惰性计算的最重要的好处是它可以构造一个无限的数据类型。 Scala中通过lazy关键字来定义惰性变量,惰性变量只能是不可变变量。例如下面,只有在调用惰性变量b的toString方法的时候,才会去实例化b这转载 2015-05-09 21:24:34 · 1239 阅读 · 0 评论 -
scala 常见问题
1、在idea中 使用 scala version 2.9.3,报错Error:object scala.reflect.ClassManifest not found....升级scala version 到 2.11.0后, 解决。新版本 scala 的 lib 中多了一个 scala-reflect.jar.具体原因不明2、编写转载 2015-05-03 20:30:24 · 448 阅读 · 0 评论 -
Scala 相比于 Java 的优势在哪里?
个人觉得比较运行速度其实没啥意义, 因为两种语言都是生成 JVM 的字节码, 依赖 JVM 这个虚拟平台来跑代码. 除非 Scalac (scala的编译器) 有重大 bug, 生成的字节码执行让人无法接受, 否则基本上不会相差太多. 再说, scala 都到大版本2了, 这种概率实在是不大.相比较与 Java, 在下觉得 Scala 最主要的有以下两点优势:FP 泛型支持转载 2015-05-12 20:06:07 · 2821 阅读 · 0 评论 -
Java而言,Scala的
相对于Java而言,Scala的代码更为精简(减低犯错),而且功能更为广泛(Scala其实是Scalable Language 的简称,意为可扩展的语言),许多Scala的特性和语法都是针对Java的不足和弱点来设计的。Scala的特点是有很多函数程式语言的特性(例如ML,Miranda, Scheme,Haskell),譬如惰性求值,list comprehension, type in转载 2015-05-12 20:05:40 · 365 阅读 · 0 评论 -
Scala的优点与缺陷:深沉而有趣的继承者
Scala的优点与缺陷:深沉而有趣的继承者2009-08-06 14:01 司马牵牛 编译 51CTO.com 字号:T | T自从Twitter开始采用Scala做后台开发以来,Scala编程语言便开始吸引众多开发者的目光了。本文对Scala的优点以及现存的一些不足做了一番总结,并认为Scala非常适合Java王位继承者这一角色。AD:干货来了,不要等!W转载 2015-05-12 20:08:51 · 824 阅读 · 0 评论 -
Scala集合(二)
请见文末要求。Scala提供了一系列的集合类的实现。同时,它对于集合类型也进行了一些抽象。这就使得你可以操作一个集合的Foo对象,而不用去关心这个集合是一个List,Set还是其他的什么。这个网页提供了一个很好的方式来理解scala里的集合的默认实现,并且都链接到了相应的scaladoc。基本集合类 常用的集合类型层级关系 集合类的抽象关系集合方法可变性Java 集合类也可转载 2015-08-14 15:08:52 · 453 阅读 · 0 评论 -
Java 8十个lambda表达式案例
1. 实现Runnable线程案例使用() -> {} 替代匿名类://Before Java 8:new Thread(new Runnable() { @Override public void run() { System.out.println("Before Java8 "); }}).start();//Java 8 way:转载 2015-08-14 16:42:34 · 392 阅读 · 0 评论 -
scala.Enumeration 枚举示例
简介在Scala中并没有枚举类型,但在标准类库中提供了Enumeration类来产出枚举。扩展Enumeration类后,调用Value方法来初始化枚举中的可能值。内部类Value实际上是一个抽象类,真正创建的是Val。因为实际上是Val,所以可以为Value传入id和name如果不指定,id就是在前一个枚举值id上加一,name则是字段名scala枚举示例ob转载 2015-08-17 19:05:04 · 7081 阅读 · 0 评论 -
Spark RDD API详解(一) Map和Reduce
https://www.zybuluo.com/jewes/note/35032RDD是什么?RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要转载 2015-08-19 13:48:12 · 419 阅读 · 0 评论 -
Scala开发入门教程
转http://blog.csdn.net/mapdigit/article/details/21878083Scala开发入门教程2014-03-23 17:12 32724人阅读 评论(18) 收藏 举报Scala语言和其它语言比如Java相比,算是一个比较复杂的语言,它是一个面向对象和面向函数的统一体,使用起来非常灵活,因此也不容易掌握,前转载 2015-09-07 14:31:40 · 344 阅读 · 0 评论 -
flatMap Map
mapmap对列表中的每个元素应用一个函数,返回应用后的元素所组成的列表。scala> numbers.map((i: Int) => i * 2)res0: List[Int] = List(2, 4, 6, 8)或传入一个部分应用函数scala> def timesTwo(i: Int): Int = i * 2timesTwo: (i: Int)Intsca转载 2017-03-06 10:27:39 · 6518 阅读 · 0 评论