Scala
文章平均质量分 68
未闻小然桑
咱的目标是星辰大海。。。
展开
-
Scala标识符
0. 前言Scala 在构成标识符方面有非常灵活的规则,共分为以下四种:1. 字母数字标识符字母数字标识符(alphanumeric identifier): 起始于一个字母或下划线,之后可以跟字母,数字,或下划线。$ 字符也被当作是字母,但是被保留作为 Scala 编译器产生的标识符之用。用户程序里的标识符不应该包含$字符,尽管能够编译通过;但是这样做有可能导致与 Scala 编译器产生的标识符原创 2016-12-02 00:02:36 · 1421 阅读 · 0 评论 -
Scala函数字面量
当我们定义一个函数字面量时,实际上定义了一个包含apply方法的Scala对象。Scala对这个方法名有特别的规则,一个有apply方法的对象可以把它当成方法一样调用。我们定义一个函数字面量(a, b) => a < b,它其实是一段创建函数对象的语法糖:val lessThan = new Function2[Int, Int, Boolean] { def apply(a: Int, b原创 2017-02-10 15:18:18 · 1377 阅读 · 0 评论 -
Scala柯里化和反柯里化
名词解释 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。柯里化举例说明def curry1[A, B, C](a: A, f: (A, B) => C): B => C = (b: B) => f(a, b)这个函数的结果是一个高阶函数接收一个带有两个参数的函数,进行部分应原创 2017-02-11 15:00:50 · 1403 阅读 · 0 评论 -
理解Spark RDD中的aggregate函数
针对Spark的RDD,API中有一个aggregate函数,本人理解起来费了很大劲,明白之后,mark一下,供以后参考。首先,Spark文档中aggregate函数定义如下def aggregate[U](zeroValue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U)(implicit arg0: ClassTag[U]): UAggregate t转载 2017-03-01 16:33:37 · 844 阅读 · 0 评论 -
Spark RDD编程
0. RDD基础RDD(Resilient Distributed Dataset):弹性分布式数据集Spark中的RDD其实是一个不可变的分布式对象集合,每个RDD都被分为多个分区,这些分区运行在集群上的不同节点上。在Spark中,对数据的所有操作不外乎创建RDD、转化已有RDD以及调用RDD操作进行求值。而在这一切的背后,Spark会自动将RDD的数据分发到集群上,并将操作并行化执行。创原创 2017-02-16 21:58:48 · 1282 阅读 · 0 评论 -
Scala Trait
trait 是一种支持多重继承的类。类、case类、对象,以及trait都只能扩展不超过一个类,但是可以同时扩展多个trait。不过,与其他类型不同,trait不能实例化。语法:定义traittrait identifier> [extends identifier>] [{ fields, methods, and classes }]trait看起来与其他类型的类是一样的。不过,类似对原创 2017-03-15 15:58:10 · 618 阅读 · 0 评论