随笔分类 - 2025寒假
摘要:三、实验内容和要求 1.安装 Hadoop 和 Spark 进入 Linux 系统,参照本教程官网“实验指南”栏目的“Hadoop 的安装和使用”,完 成 Hadoop 伪分布式模式的安装。完成 Hadoop 的安装以后,再安装 Spark(Local 模式)。 2.HDFS 常用操作 使用 had
阅读全文
摘要:三、实验内容和要求 1. 计算级数 请用脚本的方式编程计算并输出下列级数的前 n 项之和 Sn,直到 Sn 刚好大于或等于 q 为止,其中 q 为大于 0 的整数,其值通过键盘输入。 2 3 4 1 1 2 3 n n n S 例 如 , 若 q 的 值 为 50.0 , 则
阅读全文
摘要:三、实验内容和要求 1.安装 Linux 虚拟机 请登录 Windows 系统,下载 VirtualBox 软件和 Ubuntu16.04 镜像文件。 VirtualBox 软件的下载地址:https://www.virtualbox.org/wiki/Downloads。 Ubuntu16.04
阅读全文
摘要:IterableIterable 表示一个可以迭代的集合,它继承了 Travsersable 特质,同时也是其他集合的父特质。它定义了获取迭代器的方法,这是一个抽象方法。 遍历集合示例: def main(args: Array[String]): Unit = { val list = List(
阅读全文
摘要:集合分类: 可变集合 线程不安全 集合本身可以动态变化,且可变集合提供了改变集合内元素而都方法。 scala.collection.mutable //需要手动导包不可变集合 线程安全 默认类库,集合内的元素一旦初始化完成就不可再进行更改,任何对集合的改变都将生成一个新的集合。 scala.coll
阅读全文
摘要:泛型泛型泛型的意思是 泛指某种具体的数据类型,在 Scala 中泛型用 [数据类型] 表示。 泛型方法 示例,定义一个泛型方法,获取任意数据类型的中间元素 def getMiddleElement[T](array: Array[T]): T = {array(array.length / 2)}泛
阅读全文
摘要:递归递归就是方法自己调用自己 示例:求阶乘 object ClassDemo { def f(n: Int): Int = if(n == 1) n else n * f(n - 1) def main(args: Array[String]): Unit = { println(f(5)) } }
阅读全文
摘要:隐式转换和隐式参数隐式转换隐式转换指用 implicit 关键字 声明的带有 单个参数 的方法。该方法是被自动调用的,用来实现自动将某种类型的数据转换为另一种类型的数据。 示例:手动导入 通过隐式转换,让 File 类的对象具有 read 功能。 执行流程:file对象没有read方法 -> 有隐式
阅读全文
摘要:数据的读写读取数据在 Source 单例对象中提供了一些获取数据的方法。 按行读取以行为单位,返回值是一个迭代器类型的对象,通过toArray、toList方法将数据放到数组或列表。 def main(args: Array[String]): Unit = { //创建 Source 对象,关联数
阅读全文
摘要:匹配样例类要匹配的对象必须声明为 Any。 格式: 对象名 match{ case 样例类型1(字段1, 字段2..) => 表达式1 case 样例类型2(字段1, 字段2..) => 表达式2 case 样例类型3(字段1, 字段2..) => 表达式3 case _ => 表达式4 //默认项
阅读全文
摘要:模式匹配、偏函数、异常、提取器模式匹配作用:判断固定值、类型查询、快速获取数据 简单模式匹配格式: 变量 match{ case 常量1 => 表达式1 case 常量2 => 表达式2 case 常量3 => 表达式3 case _ => 表达式4 //默认项}示例: def main(args:
阅读全文
摘要:集不可变集特点:唯一、无序 语法: //创建空的不可变集val/var 变量名 = Set[类型]() //指定元素val/var 变量名 = Set(元素1, 元素2...)常用操作: size 获取大小遍历操作和数组一致+ 添加元素,生成一个新的 Set++ 拼接集或列表,生成一个新的 Set-
阅读全文
摘要:数据结构数组定长数组语法: val/var 变量名 = new Array[元素类型](数组长度)val/var 变量名 = new Array(元素1, 元素2 ...)示例: def main(args: Array[String]): Unit = { val arr = new Array[
阅读全文
摘要:包包包就是文件夹,用 package 修饰,可以区分重名类。 作用域: 子包可以直接访问父包中的内容。 上层访问下层内容时,可以通过导包(import)或者写全包名的形式实现。 如果上下层有相同的类,使用时采用就近原则(优先使用下层)。 包对象: 要定义在父包中,一般用于对包的功能进行补充、增强。
阅读全文
摘要:trait 构造机制每个特质只有一个无参构造器 遇到一个类继承另一个类以及多个trait的情况,创建该类实例时构造器执行顺序: 执行父类构造器从左到右依次执行 trait 的构造器如果trait 有父 trait,先执行父 trait如果多个 trait 有相同的父 trait,父 trait 构造
阅读全文
摘要:特质概述Scala 中的特质要用关键字 trait 修饰。 特点: 特质可以提高代码的复用性。特质可以提高代码的扩展性和可维护性。类与特质是继承关系,类与类只支持单继承,类与特质之间可以单继承也可以多继承。Scala 的特质中可以有普通字段、抽象字段、普通方法、抽象方法。如果特质只有抽象内容也叫瘦接
阅读全文
摘要:apply 方法可以在创建对象时免去 new 操作,格式: object 伴生对象名{ def apply(参数名:参数类型...) = new 类(...)}示例: object ClassDemo { //半生类 class Person(name:String, age:Int){ } //伴
阅读全文
摘要:构造器主构造器语法: class 类名(var/val 参数名:类型 = 默认值,...){ //构造代码块}示例: object ClassDemo { class Person(var name:String = "sjh",var age:Int = 24){ } def main(args:
阅读全文
摘要:函数Scala 支持函数式编程,Spark/Flink 程序会大量使用函数。 定义val 函数变量名 = (参数名1:参数类型1, 参数名2:参数类型2...) => 函数体函数是一个对象 类似于方法,函数也有参数列表和返回值 函数定义不需要使用 def 定义 无需指定返回值类型 示例:定义一个计算
阅读全文
摘要:方法和函数方法语法格式: def 方法名(参数名1:参数类型1, 参数名2:参数类型2...)[: 返回值类型] = { //方法体}123注意: 参数列表的参数类型不能省略返回值类型可以省略,由 Scala 编译器自动推断返回值可以不写 return ,默认就是块表达式的值示例:定义一个方法用来获
阅读全文