自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Spark,Linux克隆

查看虚拟机ip命令:ip addr克隆出多台虚拟机。

2025-03-04 09:10:09 417

原创 Spark,Linux yum配置

把yum想象成你自己开的一家商场,那么yum的源就是你的供货商。这个源已经失效了,就是你的默认供货商跑路了!如果是win11,它在Windows/system32/hosts 文件,如果是win10,它在C:\Windows\System32\drivers\etc\hosts。我们打开这个文件,并在最后一行的后边,添加三个新行,内容是:IP地址 主机名 eg:192.168.56.101 hadoop100(注:IP地址和主机名之间有一个空格)网络上的免费而稳定的源有很多,这里我们选择阿里云的源。

2025-03-04 09:07:10 565

原创 Spark,vi的基本使用

1.如果这个文件不存在,此时就是新建文件,编辑器的左下角会提示:new file。d(一个小d)加←删除左侧一个单词,d(一个小d)加→删除右侧一个单词。vi编辑器有三种工作模式,分别为:命令模式,输入模式,底线模式。2.如果文件已存在,此时就打开这个文件,进入命令模式。底线命令模式:以:开始,通常用于文件的保存和退出。2.nyy(n+两个小y)复制当前行往下n行内容。2.ndd(n+两个小d)用来删除当前行往下n行。nyy(n+两个小y)复制当前行往下n行内容。1.yy(两个 y)复制光标所在行的内容。

2025-02-24 20:39:00 262

原创 Spark ,虚拟机(Linux)基本命令(2)

cp 命令,复制格式:cp 源文件 目标文件cp -r 命令 复制目录格式:cp -r 源文件 目标文件夹mv 命令,重命名和移动格式:mv 源文件 目标文件说明:若源文件和目标文件在同一个目录下,就是重命名,否则就是移动。重命名操作:mv file.txt newfile.txt移动操作:mv file.txt newdir/file.txt。

2025-02-24 20:37:57 387

原创 Spark ,虚拟机(Linux)基本命令(1)

波浪线,当前用户的home目录,比如root用户home目录是/root。rm -rf ./bbb 将目录及以下所有递归逐一删除,无需用户确认。相对路径:当前相对当前工作目录开始的路径,会随着当前路径变化而变化。rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认。绝对路径:不管工作目录在哪绝对路径都是从/根目录开始,唯一不重复。mkdir -p:创建目录,如果父级目录不存在,就建立一个新目录。ll -a 命令,显示当前的目录下的文件,包括隐藏文件。ll 命令,用来显示当前的目录下的文件。

2025-02-24 20:31:21 119

原创 Spark(1)

特点:提高处理能力:通过将任务分散到多个节点上并行计算,能够大大提高数据处理的速度和效率,从而可以在短时间内处理海量数据,满足大数据时代对数据处理的实时性和高效性要求。1.无法处理大规模数据:随着业务的发展和数据量的增长,单机系统很快就会遇到存储和处理能力的瓶颈,无法应对海量数据的存储和分析需求。3.应用场景简单:主要用于个人办公、简单的游戏娱乐或小型企业的基本业务处理,如文字处理、单机游戏、简单的库存管理等。例如早期的个人电脑,通常只有几百兆的内存和几 GB 的硬盘空间。1.硬件资源有限:单机系统的。

2025-02-24 19:50:38 113

原创 虚拟机的常见指令

‌磁盘管理‌:使用df -h命令查看磁盘剩余空间,使用du -h [目录]命令查看目录下的文件大小,参数-h表示以人性化的方式显示文件大小‌。‌列出目录内容‌:ls命令用于列出指定目录中的文件和子目录,可以使用不同的参数来显示隐藏文件、长列表格式、递归列出子目录等‌。‌查看进程状态‌:ps命令用于查看进程的状态,参数a显示所有进程,u显示详细状态,x显示没有控制终端的进程‌。‌创建链接‌:ln命令用于创建文件的硬链接或符号链接,硬链接保持文件物理位置不变,符号链接可以跨文件系统‌。

2025-02-24 19:08:53 211

原创 大数据笔记

Is -I*con* 列出当前目录下名称中有“con"文件或目录的详细信息。Is -a 列出包括以“.”开始的隐藏文件在内的所有文件。cd /etc/sysconfig/ 切换到/etc/sysconfig目录。■ -R:显示出目录下以及其所有子目录的文件名(包括了隐藏文件)■ -A:显示除隐藏文件“.”和“..”以外的所有文件列表;■ -d:仅显示目录名,而不显示目录下的内容列表。■ -l:以长格式显示目录下的内容列表。

2025-02-24 19:05:22 166

原创 scala中的函数变参

在Scala编程中,函数变参(也称为可变长度参数)允许你传递任意数量的参数给一个函数。Scala通过在参数类型后面加一个星号(*)来表示一个参数是可变的。

2025-01-02 00:50:53 110

原创 递归调用练习

在这个例子中,factorial 函数在 n 等于 0 时返回 1(基本情况),否则返回 n 乘以 factorial(n - 1)(递归情况)。else n * factorial(n - 1) // 递归情况。println(result) // 输出 120。if (n == 0) 1 // 基本情况。

2025-01-02 00:49:00 121

原创 scala中的函数递归调用

Scala中的函数递归调用是指一个函数在其定义中直接或间接地调用自身。递归函数通常用于解决可以分解为更小相似问题的问题,直到达到一个基本情况(也称为停止条件或基本情况)。:这是函数调用自身的情况,通常涉及对输入参数进行某种变换,并继续递归调用。:这是递归停止的条件,函数在此情况下不再调用自身,而是直接返回一个值。

2025-01-02 00:47:24 109

原创 scala中的函数定义和调用

使用def关键字定义函数,后跟函数名、参数列表及函数体。参数列表中的每个参数都需要指定类型,函数体可以包含任意表达式或代码块。如果函数没有显式指定返回类型,编译器会根据函数体中的最后一个表达式自动推断返回类型。函数调用通过函数名后跟一对圆括号实现,在圆括号中传递参数。参数可以是任何有效的Scala数据类型,包括其他函数或高阶函数的返回值。

2025-01-02 00:45:41 227

原创 scala中的面向对象继承

特质(Trait) :Scala中的特质类似于其他语言中的接口或抽象类,可以包含抽象方法和不完整的实现。特质可以继承其他特质或类,并且可以被多个类混合使用,从而实现代码复用和多重继承的效果,同时避免了Java中的多重继承问题。final :在Scala中,final关键字用于声明不可被继承的类、方法或字段。同样,final的字段和方法在继承体系中也是不可被覆盖的。这在子类覆盖父类方法时特别有用,可以显式调用父类的方法,而无需重新实现它们。子类可以继承父类的字段和方法,并且可以添加自己特有的字段和方法。

2025-01-02 00:42:57 153

原创 scala中的面向对象匿名类

在Scala中,匿名类是指没有显式名称的类,通常用于创建一次性使用的对象或实现特定的接口或抽象类。闭包和Lambda表达式 :匿名类经常与闭包和Lambda表达式一起使用,以实现简洁的代码。printMessage(funnyAnimal) // 输出: ahahahahahaah。实现接口或抽象类 :匿名类可以用来实现一个接口或继承一个抽象类,并覆盖其方法。println(doubled) // 输出: 2 4 6 8 10。4. **创建单例对象**:有时候,可以使用匿名类来创建单例对象。

2025-01-02 00:38:55 212

原创 scala中的面向对象抽象类

在Scala中,抽象类(Abstract Class)是一种不能被实例化的类,它主要用来作为其他类的基类,提供一些共享的方法和属性。抽象类可以包含抽象方法(没有方法体的方法)和具体方法,以及抽象属性(没有初始化的属性)和具体属性。抽象类可以包含抽象属性和具体属性。抽象属性使用val关键字定义且没有初始值,具体属性可以使用var或val关键字定义。抽象方法使用def关键字定义但没有方法体,具体方法包含方法体。子类必须实现抽象类中的所有抽象方法和抽象属性,否则子类也需要声明为抽象类。// 实现抽象属性和方法。

2025-01-02 00:32:48 120

原创 scala中的内部类

Scala内部类是 从属于外部类对象 的类。在Scala中,内部类不像Java内部类那样从属于外部类本身,而是从属于外部类的实例(对象)。这意味着Scala内部类可以访问外部类的实例成员,包括私有成员,而不需要通过外部类名称作为前缀。这种设计使得Scala内部类在编程时更加灵活和强大。

2025-01-02 00:28:16 116

原创 scala中的匹配函数match

Scala中的match表达式是一种强大的模式匹配机制,它允许你根据不同的条件执行不同的代码块。match表达式类似于其他语言中的switch语句,但它的功能更为强大和灵活。值匹配 :match可以用于匹配各种类型的值,包括基本类型和对象类型。你可以为每个可能的值定义一个case分支。} // 输出: One。

2025-01-02 00:24:53 118

原创 Scala中的List(链表)

但是可以使用:+和:::操作符创建一个新的列表,其中包含添加或移除的元素。可以使用map方法对列表中的每个元素进行映射操作,返回一个新的列表。可以使用groupBy方法根据某个属性对列表进行分组,然后使用mapValues方法对每个分组进行聚合操作。可以使用::操作符将元素添加到列表中,或者使用List()构造函数创建一个空列表。可以使用sorted方法对列表进行排序,使用reverse方法反转列表。可以使用apply方法或()操作符访问列表中的元素。可以使用foreach方法遍历列表中的每个元素。

2024-12-30 08:37:11 160

原创 scala中的集合Map

Scala中的map是一种高阶函数,它接受一个函数作为参数,并将该函数应用于集合(如List、Set、Map等)的每个元素,从而生成一个新的集合。map函数不会改变原始集合,而是返回一个新的集合。除了基本类型和字符串,map函数还可以应用于更复杂的集合类型,如Map。注意,在上述示例中,我们使用了_作为占位符,表示map函数中的每个元素都会被传递给提供的函数。

2024-12-30 08:24:35 126

转载 集合Set

Set集合特点:唯一(元素不相同) 无序\n可变的Set 可进行添加删除 不可变Set 不能进行修改\n默认时Set是不可变\n查询元素是否存在 contains\n差集 diff 交集 intersect 并集union。

2024-12-18 21:28:35 18

转载 迭代器练习

2024-12-18 21:21:03 12

原创 迭代器zip

在这个例子中,我们创建了两个迭代器iterator1和iterator2。然后,我们使用zip方法将它们组合成一个新迭代器zippedIterator。最后,我们遍历zippedIterator并打印每个元组。在Scala中,zip方法用于将两个集合组合成一个元组序列。每个元组包含来自两个集合的对应元素。这在迭代器中同样适用。请注意,如果两个迭代器的长度不同,zip方法将只组合它们共有的元素。在这种情况下,较长的迭代器中剩余的元素将被忽略。

2024-12-18 21:16:05 201

原创 迭代器toList

在Scala中,迭代器(Iterator)是一种特殊的集合类型,它允许你按需访问集合中的元素,而不需要一次性加载整个集合。toList方法可以将迭代器转换为列表(List),这样你就可以更方便地操作集合中的元素。需要注意的是,toList方法会消耗迭代器中的所有元素,因此在调用toList之后,迭代器将不再可用。如果你需要在转换之后继续使用迭代器,请确保在使用toList之前保存迭代器的引用。在这个示例中,我们首先创建了一个包含5个整数的迭代器。然后,我们使用toList方法将迭代器转换为列表。

2024-12-18 21:13:32 239

原创 scala迭代器drop take

在Scala中,drop和take是Iterator对象的方法,它们用于从迭代器中提取元素。这两个方法都返回一个新的迭代器,而不会修改原始迭代器。注意:drop和take方法都不会修改原始迭代器,而是返回一个新的迭代器。这意味着原始迭代器的状态不会改变,你可以继续使用它。: take方法用于从迭代器中提取前n个元素。它接受一个整数参数n,返回一个新的迭代器,包含原始迭代器的前n个元素。: drop方法用于从迭代器中丢弃前n个元素。它接受一个整数参数n,返回一个新的迭代器,包含原始迭代器中剩余的元素。

2024-12-18 21:10:06 140

原创 迭代器计算平均值和筛选大于平均值的元素

在Scala中,你可以使用迭代器(Iterator)来实现这个功能。

2024-12-18 20:43:12 144

原创 迭代器是什么和创建

返回迭代器的下一个元素,如果没有则抛出 NoSuchElementException。使用集合的 iterator 方法可以获取一个迭代器实例。可以使用 while 循环或 for 表达式来遍历集合。// 使用 while 循环。// 使用 for 表达式。检查是否还有下一个元素。

2024-12-18 20:38:02 123

原创 访问权限的修饰符

在Scala中不存在显式的public关键字,任何没有被标记为private或protected的成员默认都是public,可以被任何其他类访问。:表示成员可以被声明它的类及其子类访问,即使是不同包的子类也可以访问,但是同包的类无法访问。(没有显式指定修饰符):表示成员可以被声明它的类及其同包内的其他类访问。:表示成员只能在声明它的类或对象内部访问。

2024-12-18 20:31:38 103

原创 正则表达式的字符和量词

{,m}:匹配前面的元素零次或多次,最多出现 m 次(JavaScript 不支持这种写法)\w:匹配任意一个字母、数字或下划线字符(等同于 [a-zA-Z0-9_])。\W:匹配任意一个非单词字符(等同于 [^a-zA-Z0-9_])。{n,m}:匹配前面的元素至少出现 n 次,至多出现 m 次。\D:匹配任意一个非数字字符(等同于 [^0-9])。\d:匹配任意一个数字字符(等同于 [0-9])。{n,}:匹配前面的元素至少出现 n 次,无上限。{n}:匹配前面的元素恰好出现 n 次。

2024-12-18 20:27:03 188

原创 完成の任务

2024-12-08 22:49:11 72

原创 图书馆书籍管理系统相关的练习

1.创建一个可变 Set,用于存储图书馆中的书籍信息(假设书籍信息用字符串表示,如“Java编程思想”“Scala 实战”等),初始化为包含几本你喜欢的书籍。4.检查某一本特定的书籍(如“Python 从入门到实践”)是否在图书馆集合中,使用 contains 方法,并输出结果。7.求出两个图书馆书籍集合的交集,使用 intersect 方法,并输出结果。8.求出当前图书馆相对于另一个图书馆的差集,使用 -- 操作符,并输出结果。6.求出两个图书馆书籍集合的并集,使用 ++ 操作符,并输出结果。

2024-12-08 22:27:46 163

原创 scala函数的多种定义方式

使用val关键字定义函数,与使用def相比,val定义的函数是闭包,可以记住其外部作用域的值。省略返回类型,return语句也可以省略,Scala会自动返回函数体中最后一个表达式的值。以上是Scala中函数定义的一些常见方式。您可以根据实际需要和编程风格选择合适的定义方法。使用函数式接口和Lambda表达式定义函数,这种方式在Scala中用于函数式编程风格。使用=>定义匿名函数,可以作为参数传递或赋值给变量2。函数只有一行,省略了大括号和return语句。显式指定返回类型和return语句。

2024-12-08 22:18:35 251

原创 递归函数的基本情况和递归情况

递归情况(Recursive Case) :这是函数继续调用自身的情况,每次调用都会使问题规模逐渐减小,直到达到基本情况。递归情况是递归继续发生的地方,通过递归调用,函数能够解决更小规模的问题。基本情况(Base Case) :这是递归的终止条件,当满足这个条件时,函数不再调用自身,而是直接返回结果。基本情况是递归结束的地方,防止无限递归的发生。递归函数是一种编程技术,它允许一个函数在其定义中调用自身。递归函数通常包含两个关键部分。

2024-12-08 21:22:06 147

原创 在Scala中不使用new来定义对象

在Scala中,你可以使用==操作符来判断两个对象是否相等。如果你想比较对象的内容是否相等,你需要在类中重写equals方法。在重写equals方法时,通常还需要重写hashCode方法,以确保相等的对象具有相同的哈希码。在Scala中,你可以使用伴生对象(object)和伴生类(class)来创建单例对象,而不需要使用new关键字。这样,当你使用Scala集合(如HashSet、HashMap等)时,它们可以正确地处理你的自定义对象。在Scala中,你可以使用getClass方法来获取对象所属的类。

2024-12-08 21:16:27 165

原创 Scala中的 Unit 、Null 、Nothing类型

在Scala中,如果一个方法没有返回值,它的返回类型就是Unit。Nothing类型是所有类型的子类,表示一个没有实例的类型。在Scala中,Nothing类型没有对象,它主要用于表示一个方法或函数没有明确的返回值,或者表示一个永远不会返回的方法或函数。例如,如果一个方法抛出异常,那么该方法的返回类型就是Nothing‌4。在Scala中,Null类型只有一个对象,即null。在Scala中,Unit、Null、Nothing是三种特殊的类型,它们各自在Scala的类型系统中扮演着不同的角色。

2024-09-21 20:10:24 327 2

原创 补码、反码、原马的关系和基本概念

‌补码‌:在计算机中,数值一律用补码来表示和存储。补码的表示方法为,正数的补码与原码相同,负数的补码是其反码加1。例如,-5的补码为1111 1011。‌反码‌:正数的反码与原码相同,负数的反码是其正数原码的符号位不变,其余位取反。例如,-5的反码为1111 1010。‌原码‌:正数的原码是其本身,负数的原码是其绝对值的二进制形式,符号位为1。例如,-5的原码为1000 0101。

2024-09-21 20:04:11 237

原创 Scala中的while和do…while循环

‌没有break语句‌:Scala中没有直接的break语句来跳出循环,但可以通过抛出异常或使用其他控制流语句来达到类似的效果‌。这两种循环的基本语法和用法与Java类似,但Scala还提供了更强大的for循环,它允许更灵活的操作和数据集处理。‌推荐使用for循环‌:对于大多数情况,推荐使用for循环,因为它提供了更多的灵活性和功能。例如,可以很容易地处理集合、数组等数据结构,并且支持循环守卫、步长和嵌套等高级功能‌。这里的condition是一个返回布尔值的表达式,当条件为真时,循环体会被执行。

2024-09-21 19:55:04 422

原创 Scala的for循环

Scala中没有直接的break和continue关键字,但可以通过其他方式模拟这些功能。例如,使用Breaks类中的。Scala中的for循环是一种强大的工具,用于迭代集合、数组或其他可迭代对象。这段代码将打印1、2、4、5,因为只有当i不等于3时,才会执行println(i)。在循环中,可以引入新的变量,或者使用yield关键字来收集循环的结果。Scala的集合也可以设定循环的增长幅度,即所谓的步长。这段代码将打印所有可能的(i, j)组合。这段代码将打印1、3、5。

2024-09-21 19:45:17 316

原创 短路的作用

短路运算的核心思想是:由&&或||运算符构建出来的表达式,只会对整个运算结果有决定作用的部分进行求值。这意味着,如果表达式的左侧已经能够确定整个表达式的最终结果,那么右侧的表达式将不会被计算,从而节省了计算资源‌12。‌条件判断‌:在需要基于多个条件做出决策的情况下,如果某个条件已经足够确定决策结果,那么后续的条件判断可以省略。‌函数调用‌:在函数调用中,如果函数的某些参数已经足够确定函数的返回值,那么后续的参数计算可以避免。‌性能优化‌:通过短路运算,可以减少不必要的计算,从而提高程序的性能。

2024-09-21 19:27:35 233

原创 Scala的中断循环 ———— break和continue

在Scala中,可以使用break和continue语句来中断循环。break语句可以在满足某个条件时中断循环,而continue语句可以在满足某个条件时跳过当前循环迭代,直接执行下一次迭代。scala 是没有 continue 的,但是包含 break,可以用 break 构造出 continue 的效果。//如果i=2则跳出循环。//如果i=2则跳出循环。

2024-09-21 19:21:12 486

原创 scala入门

示例:val message = "Hello, Scala!修改值:counter = counter + 1。常用于声明常量、不会改变的配置、函数返回值等。常用于循环中的计数器、需要动态更新的状态等。不可变性:一旦初始化后,其值不能被修改。可变性:可以在声明后的任何时候被修改。示例:var counter = 0。示例:var counter = 0。示例:val pi = 3.14。Scala中val和var的用法。用于声明常量或不会改变的变量。用于声明需要动态更新的变量。1.了解Scala的。

2024-09-21 19:11:30 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除