赞
踩
Scala主要是一门面向对象编程语言和函数式编程语言。
- ---以HADOOP 2. x为系列的大数据生态系统处理框架
离线数据分析,分析的数据为N+1天数据
-----MapReduce
并行计算框架,分而治之
----Hive
基于SQL处理框架,将SQL转换为MapReduce,处理存储在HDFS上的数据,并且运行在YARN上。
-----SQOOP
桥梁:RDBMS(关系型数据库)-HDFS/HIVE 导入导出
----HBASE
大数据分布式数据库
与MapReduce进行集成,可以读取数据进行分析处理,
也可能将分析结果存储到HBase表中。
-----以storm为体系实时流式数据处理框架
数据实时产生 ->进行实时处理
应用场景:
实时交通监控,电商营业额,双十一
-----以spark为体系的大数据处理框架
内存
将处理数据过程中的中间结果数据,存放到内存中
核心编程(基础编程)
高级编程
机器学习/深度学习/人工智能
Scala官网: The Scala Programming Languagehttps://www.scala-lang.org/
虚拟机镜像
IntelliJ IDEA 2022.3版本支持多个Scala和JDK版本。以下是一些常见的Scala和JDK版本组合,适用于IntelliJ IDEA 2022.3:
--1,JAVA环境安装
JAVA_HOME
PATH
--2,SCALA环境安装
SCALA_HOME
PATH
--3,IDEA安装
不同的idea版本对应不同的scala和jdk
---val value 简写,表示的意思为 值
value name = "zhangsan"
不可变
在SCALA语言中,variableType Inference,自动推断
当然也可以指定变量的类型,类型紧跟变量名后面,并使用分号隔开
val xx : String = "xxx"
--var variable简写,表示变量,可以改变的值
1.变量和常量
常量:在程序执行的过程中,其值不会被改变的变量 。
Java 与Scala变量和常量语法对比
Java
变量类型 变量名称 = 初始值
final 常量类型 常量名称 = 初始值
Scala
var 变量名 [: 变量类型] = 初始值
val 常量名 [: 常量类型] = 初始值
2.键盘输入
在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。
直接无缝衔接使用Java的键盘输入 —— Scanner
使用Scala提供的自带的键盘输入 —— StdIn.readxxx()
基本语法
3.关键字说明
Scala 完全面向对象,故scala去掉了Java中非面向对象的元素,如static关键字,void类型
1) static
scala无static关键字,由object实现类似静态方法的功能(类名.方法名)
class关键字和Java中的class关键字作用相同,用来定义一个类
2) void
对于无返回值的函数,scala定义其返回值类型为Unit类型
基本语法:
- // java for循环语法
- for(int i = 0; i < 10; i++){
- System.out.println("i=" + i);
- }
-
- // scala for循环语法
- for(i <- 1 to 10){
- println("i=" + i)
- }
- // 输出:从1~10(包含 1 和 10 )
1)基本语法
- // 方法一:
- for(i <- 1 until 10) {
- print("i=" + i)
- }
- // 输出:从1~10(包含 1,不包含 10 )
-
- // 方法二:
- for(i <- Range(1,10)) {
- print("i=" + i)
- }
- 基本语法:
- for(i <- 1 to 3 if i != 2){
- print(i + " ")
- }
2)基本语法:
- for(i <- 1 to 10 by 2){
- print("i=" +i)
- }
3)基本语法:
- // 嵌套循环
- for(i <- 1 to 3;j <- 1 to 3) {
- println("i=" +i+ "j=" +j)
- }
- // 引入变量
- for(i <- 1 to 3; j = 4 - i){
- println("i=" + i + "j=" +j)
- }
- // 等价于
- for(i <- 1 to 3) {
- var j = 4 - i
- println("i=" + i + "j=" +j)
- }
- val res = for (i <- 1 to 10) yield i
- println(res)
- // 需求:将原数据中所有值乘以2,并把数据返回到一个新的集合中。
- var res_l = for (i <- 1 to 10) yield {
- i * 2
- }
- println(res_l)
1)函数可以作为值进行传递
- def f(n: Int): Int = {
- println("f调用")
- n + 1
- }
-
- // 调用f(123),返回值124,将返回值赋给val变量result
- var result: Int = f(123)
- println(result)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。