Yezhiwei Blog

平时多流汗,战时少流血!

Spark快速入门-1-Spark on Yarn Job的执行流程简介

准备 2017-12-19-Hadoop2.0架构及HA集群配置(1) 2017-12-24-Hadoop2架构及HA集群配置(2) 2017-12-25-Spark集群搭建 2017-12-29-Hadoop和Spark的异同 2017-12-28-Spark-HelloWorld(Spark开发环境搭建) 相关概念 在介绍一个典型的 Spark Job 是如何被调度执行前,先了解以...

Scala快速入门-11-常用集合操作

知识点 所有的集合都扩展自Iterable特质 集合有三大类,分别为序列、集和映射 几乎所有集合类,Scala都同时提供了可变和不可变的版本 Scala列表要么是空的,要么拥有一头一尾,其中尾部本身又是一个表列 集是无先后次序的集合 用LinkedHashSet来保留插入顺序,或用SortedSet来按顺序进行迭代 +将元素添加到无先后次序的集合中;+:和:+向前或向后追加到序列;++将两...

Scala快速入门-10-模式匹配与样例类

知识点 mathch表达式是一个更好的switch,不会有穿透到下一个分支的问题 如果没有模式能够匹配,会抛出MatchError,可以用case _ 模式来避免,相当于Java中的default 模式可以包含一个随意定义的条件,称做守卫 可以匹配数组、列表、元组等模式,然后将匹配到不同部分绑定到变量 样例类及密封类的模式匹配 用Option来存放可能存在也可能不存在的值,比null更安全...

Scala快速入门-9-高阶函数

知识点 作为值的函数 创建匿名函数 带函数参数的函数 闭包 柯里化 函数 在Scala中,函数是“头等公民”,可以在变量中存放函数 scala> def fun(msg: String) {println(msg)} fun: (msg: String)Unit scala> val f = fun <console>:8: error: missing a...

Scala快速入门-8-特质

知识点 Scala和Java一样不允许类继承多个超类,特质解决这一局限性 类可以实现任意数量的特质 当将多个特质叠加在一起时,顺序很重要,其方法先被执行的特质排在更后面 Scala特质可以提供方法和字段的实现 特质要求实现它们的类具备特定的字段、方法或超类 特质可以同时拥有抽象方法和具体方法,而类可以实现多个特质 当做接口使用的特质 Scala特质完全可以像Java的接口一样,使用关键...

Scala快速入门-7-继承

知识点 继承类 extends 重写方法时必须用override 只有主构造器可以调用超类的主构造器 重写字段 抽象类、字段 扩展类 使用extends关键字 class Employee extends Person {...} 在子类中定义需要的新字段和方法,或者重写超类的方法 可将类声明为final,这样就不有被扩展 可将单个方法或字段声明为final,确保不能被重写 在上...

Scala快速入门-6-单例对象及伴生对象

知识点 用对象作为单例或存放工具方法,Scala没有静态方法或字段 类可以有一个同名的伴生对象 对象的apply方法通常用来构造伴生类的新实例 Scala的main函数定义 单例对象 Scala没有静态方法或字段,可以用object语法定义结构,对象定义了类的单个实例。 对象的构造器在该对象第一次使用时被调用。 不能提供构造器参数。 作为存放工具函数或常量的地方。 高效地共享单个不可变...

Scala快速入门-5-类定义

知识点 每个类都有一个主构造器,这个构造器和类的定义“交织”在一起,它的参数直接成为类的字段,主构造器执行类体中所有的语句 类中的字段自动带getter和setter方法 用@BeanProperty注解生成JavaBean的getXxx/setXxx方法 辅助构造器是可选的,它们都叫做this 类定义 定义及使用 scala> class Counter { | p...

Scala快速入门-4-常用映射和元组操作

知识点 映射是键值对的集合 n个对象(并不一定要相同类型的对象)的集合,元组 映射 构造一个不可变(默认)映射(构造一个不可变的Map[String, Int],其值不能被改变) scala> val scores = Map("Alice" -> 90, "Bob" -> 88) scores: scala.collecti...

Scala快速入门-3-常用数组操作

知识点 长度固定使用Array,长度有变化使用ArrayBuffer 提供初始值时不要使用new 用()来访问元素 for(elem <- arr)遍历元素 for(elem <- arr if ...) yield ...将原数组转为新数组 定长数组 10个整数的数组,所有元素初始为0 scala> val nums = new Array[Int](10) nu...