【Spark编程基础(2)】Scala语言基础


快速掌握Spark编程所需的Scala基础。

1 Scala语言概述

  1. 计算机的缘起

形式系统:λ演算=图灵机
计算机体系结构:冯·诺依曼
【Spark编程基础(2)】Scala语言基础
2. 编程范式

定义:编程的基本风格。

分类:命令式编程(C++、Java、C)和函数式编程(Haskell、Eilang 、LiSP)

函数式编程(泛函):计算->数学函数计算

函数式编程的发展
大数据应用的发展、CPU的发展
命令式编程涉及多线程之间的状态共享,使用锁机制保持数据的一致性,但会使得并发度降低
函数式编程变量不可变更,可以充分利用多核CPU多线程并发能力。

  1. Scala简介
    类似Java的多范式语言。
    特点:运行在JVM上,可以兼容所有java程序;面向对象,每个值都是一个对象,比如3+5实际执行3.+(5);一门函数式语言,并发性好,轻量级函数(Lambda表达式),高阶函数(参数仍然是函数);

  2. Scala的安装

步骤见官网

  1. HelloWorld

多行自动换行;:quit退出。

  • scala>println(“Hello World!”)
  • scala>:load /usr/local/scala/mycode/Test.scala
  • scalac HelloWorld.scala
    scala -classpath . HelloWorld
    或java -classpath .:/usr/local/scala/lib/scala-library.jar HelloWorld

2 Scala基础知识

  1. 基本数据类型和变量

基本数据类型:Byte、Char、Short、Int、Long、Float、Double、Boolean。
Int类型->scala.Int类
String类型->java.lang.String
【Spark编程基础(2)】Scala语言基础
字面量(literal)
【Spark编程基础(2)】Scala语言基础
【Spark编程基础(2)】Scala语言基础
操作符优先级:算术运算符>关系运算符>逻辑运算符>赋值运算符
操作符定义成方法:
【Spark编程基础(2)】Scala语言基础
富包装类:
Int基本类,没有比较复杂的操作,如max,但可以用。因为对应一个富包装类RichInt。

val var 不同类型变量
val 不可变 声明时必须初始化 不能再赋值
var 可变的 声明时需要初始化 可以再赋值
val/var 变量名:数据类型=初始值

类型推断机制
【Spark编程基础(2)】Scala语言基础
重复使用变量名,会记住最后一次用的类型。
【Spark编程基础(2)】Scala语言基础
2. 输入输出

  1. 控制结构

  2. 数据结构

3 面向对象编程基础

4 函数式编程基础