赤峰做网站建设的企业,菏泽公司网站建设,工程建设是指,网站开发学那种语言Scala主要是一门面向对象编程语言和函数式编程语言。
一、大数据框架#xff08;处理海量/流式数据#xff09;
- ---以HADOOP 2. x为系列的大数据生态系统处理框架 离线数据分析#xff0c;分析的数据为N1天数据 -----MapReduce 并行计算框架#xff0c;分而治之…Scala主要是一门面向对象编程语言和函数式编程语言。
一、大数据框架处理海量/流式数据
- ---以HADOOP 2. x为系列的大数据生态系统处理框架 离线数据分析分析的数据为N1天数据 -----MapReduce 并行计算框架分而治之 - HDFS存储数据 - YARN分布式的集群资源管理和任务调度框架 ----Hive 基于SQL处理框架将SQL转换为MapReduce处理存储在HDFS上的数据并且运行在YARN上。 -----SQOOP 桥梁RDBMS关系型数据库-HDFS/HIVE 导入导出 ----HBASE 大数据分布式数据库 与MapReduce进行集成可以读取数据进行分析处理 也可能将分析结果存储到HBase表中。 -----以storm为体系实时流式数据处理框架 数据实时产生 -进行实时处理 应用场景 实时交通监控电商营业额双十一 -----以spark为体系的大数据处理框架 内存 将处理数据过程中的中间结果数据存放到内存中 核心编程基础编程 sparkCore SparkSQL SparkSteaming 高级编程 机器学习/深度学习/人工智能 SparkGraphx SparkMLlib Spark on R 二、Scala下载
Scala官网 The Scala Programming Languagehttps://www.scala-lang.org/
虚拟机镜像
Index of /centos-vault/7.6.1810/isos/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /centos-vault/7.6.1810/isos/x86_64/ | 清华大学开源软件镜像站致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/isos/x86_64/scala环境安装
IntelliJ IDEA 2022.3版本支持多个Scala和JDK版本。以下是一些常见的Scala和JDK版本组合适用于IntelliJ IDEA 2022.3
Scala 2.13.x与JDK 8、JDK 11或JDK 17这是目前最新的Scala稳定版本与多个JDK版本兼容。Scala 2.12.x与JDK 8或JDK 11Scala 2.12.x是较旧的Scala版本但仍然在许多项目中广泛使用。
--1JAVA环境安装 JAVA_HOME PATH
--2SCALA环境安装 SCALA_HOME PATH
--3IDEA安装 不同的idea版本对应不同的scala和jdk
三、SCALA中变量的声明
---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()
基本语法
StdIn.readLine()StdIn.readShort()StdIn.readDouble()
3.关键字说明
package 包等同于java中的packageobject关键字声明一个单例对象伴生对象main方法从外部可以直接调用执行的方法def 方法名称 ( 参数名称 : 参数类型 ) : 返回值类型 { 方法体 }
Scala 完全面向对象故scala去掉了Java中非面向对象的元素如static关键字void类型 1) static scala无static关键字,由object实现类似静态方法的功能(类名.方法名) class关键字和Java中的class关键字作用相同,用来定义一个类 2) void 对于无返回值的函数,scala定义其返回值类型为Unit类型
四、 For循环控制
基本语法
// 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
4.1范围数据循环Until
1基本语法
// 方法一
for(i - 1 until 10) {print(i i)
}
// 输出从1~10包含 1不包含 10 // 方法二
for(i - Range(1,10)) {print(i i)
}
4.2循环守卫 基本语法
for(i - 1 to 3 if i ! 2){print(i )
}
4.3循环步长by
2基本语法 for(i - 1 to 10 by 2){print(i i)} 4.4嵌套循环
3基本语法 // 嵌套循环for(i - 1 to 3;j - 1 to 3) {println(i i j j)}
4.5引入变量 // 引入变量for(i - 1 to 3; j 4 - i){println(i i j j)}
// 等价于for(i - 1 to 3) {var j 4 - iprintln(i i j j)}
4.6循环返回值 val res for (i - 1 to 10) yield iprintln(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变量resultvar result: Int f(123)println(result)