尚硅谷大数据技术之Scala(韩顺平)

一.Scala概述

大数据三个问题

1.数据采集

2.数据存储(HBase)

3.数据计算(Spark,Flink,Mapreduce……)。计算分两种

  1.离线计算:MapReduce;

  2.实时计算:Spark(内存级大数据计算框架)

Scala是多范式编程语言,多种编程方式

1.面向对象

2.函数式

Scalable Language

Spark的兴起带动了Scala

发明者Martin Odersky主写Java 1.5与Java8编译器,从Pizza和Scala里引入大量特性到Java

Scala程序目的是高效、简单,少些代码。递归是达到这个目的的重要手段

Scala有以下特性

1.可以使用Java部分语法

2.Scala特有语法

3.增加函数式编程

  1.偏函数

  2.函数柯里化

  3.高阶函数

  4.纯函数

  5.函数作为参数

  ……

4.Scala类可以是对Java形式上的一种包装(继承,实现接口等)

Scala天生语法层面支持并行计算,可以较好的用于大数据计算开发

二.Scala特点

1.多范式静态编程语言

2.运行在JVM上

3.简洁高效,删除了三目、++、--运算符

快速学习办法:

1.学习Scala特有语法

2.搞清楚与Java区别

3.如何规范使用Scala

三.搭建环境

Windows:1.安装JDK 2.安装Scala程序安装包 3.配置环境变量SCALA_HOME为scala安装路径,并把bin目录加到Path里

Linux:也类似,解压tar包,设置PATH环境变量

Idea Scala插件安装:搜索Scala插件安装

四.Scala快速入门

object HelloScala{
      def main(args: Array[String])  :Unit={
             println("hello scala)  
      }
}

object表明一个伴生对象,ojbect 对象名,生成一个“HelloScala$”的伴生匿名类,这个类的静态对象名字叫做MODULE$

先从HelloScala类的main方法执行,会调用HelloScala$.MOUDLE$里的同名方法接着执行

这里可以看到Scala对Java类的包装

Scala认为静态的不是面向对象,所以class里没有,静态的放object里

关键字def定义一个方法

Scala将参数名放前边,类型放后边,用:分隔

Array[String]表示类型为String数组

Unit为空

函数签名与返回结果用:隔开

一般scala可以执行javac编译出来的class文件,java不能执行scala编译出来的class文件,可能会少类引用

五.Idea创建Scala项目

1.创建一个原生maven项目

2.main目录下创建一个scala文件夹,标记为Source Root

3.默认不能写Scala程序,点击项目名,点击“Add Framework Support”,选Scala

4.创先新Scala文件。有三种类型,Class,Object,Trait

五十

猜你喜欢

转载自www.cnblogs.com/cascle/p/12207524.html