- 博客(38)
- 收藏
- 关注
原创 mapreduce的工作原理
Map函数的逻辑由用户定义,它会读取输入的键值对,对数据进行处理,然后产生中间结果。例如,在一个单词统计的例子中,输入的键值对可能是(文件偏移量,一行文本),Map函数会将这行文本拆分成单词,然后输出中间结果(单词,1),表示每个单词出现了一次。例如,在单词统计的例子中,Reduce任务的输入可能是(单词,[1, 1, 1, 1]),表示这个单词在Map任务中出现了4次。例如,在单词统计的例子中,Reduce函数会对值列表中的数字进行累加,输出(单词,4),表示这个单词总共出现了4次。
2025-03-31 19:37:54
362
原创 HADOOP集群的常用命令
刷新资源调度器配置 如果修改了资源配置文件,则需要通知 ResourceManager 更新这些更改。其中 <namenode-host> 是实际部署 NameNode 的主机名或 IP 地址。该命令返回的信息包括每个应用程序的 ID、名称、用户、队列以及其他元数据2。这将安全地关闭所有的 DataNode 和 NameNode 进程。此命令会初始化并启动分布式文件系统的各个组件1。这条指令重新加载队列定义而不必重启整个集群。启动和停止 HDFS 服务。YARN 常用管理命令。查看 HDFS 状态。
2025-03-31 19:27:26
235
原创 vi常见操作命令
3.Home键可以快速定位到首位,end键可以快速定位到行尾。yy(两个小y)复制光标所在行的内容。1.dd用来删除光标所在当前行的内容。命令行模式,插入模式,底线命令模式。1.p(小写)在当前行的下一行粘贴。2.P(大写)在当前行的上一行粘贴。4.按下G键可以跳到文件最后一行。2.ndd用来删除当前行往下n行。shift+zz快速保存并退出。nyy复制当前行往下n行内容。Esc退出模式,进入命令模式。5.按下gg跳到文件的第一行。格式:vi /路径/文件名。i,a,o进入编辑模式。输入:wq退出并保存。
2025-03-03 19:44:30
162
原创 虚拟机配置IP
linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。配置Windows本地虚拟网卡,让本机也可以访问虚拟机。具体设置为:进入虚拟机,修改对应的IP。(3)设置虚拟机的IP。
2025-03-03 19:30:58
234
原创 linux基础命令
rm 文件名.txt。会·给一个提示,让用户确认(输入yes)之后再删除。rm -f 文件名.txt这条命令是无需用户确认。rm -r dir (谨慎使用)touch 文件名.txt。cd 文件名 进入这个文件。ls -l 查询隐藏文件。cd .. 返回上一级。2、ls 查询所在目录的文件。1、cd / 进入根目录。
2025-02-21 16:03:26
97
原创 Scala测试
throw new IllegalArgumentException("列表不能为空")// 定义一个函数, 用来求List元素中的最大值。
2024-12-12 09:22:07
658
原创 Scala测试2
writer.println(s"姓名:${s.name}, 名次:${s.mingci},语文: ${s.yuwen}, 数学: ${s.shuxue}, 英语: ${s.yingyu}, java: ${s.java}, 总分:${s.zongfen}, 平均分:${s.pinjunfen}")writer.println(s"姓名:${s.name}, 语文: ${s.yuwen},总分:${s.zongfen}")// (1) 如果当前的分数不等于预设分数,则名次 +1, 更新预设分数。
2024-12-11 20:52:27
309
原创 Scala根据身份证前两位数判断地区
case _ => println("什么玩意,不到")case "42" => println("湖北")case "33" => println("折江")case "11" => println("北京")case "31" => println("上海")println("未知", province)println("湖北")println("北京")println("浙江")println("上海")// 取出id前两位。
2024-12-11 20:51:18
324
原创 Scala隐式转换
/ 特点:1.自动北调用 2.函数名字不重要 3.重要的是:参数类型和返回类型!//隐式转换:编译器自动滴,把数据类型从A->B。// 把Int类型,转成Double类型。// 隐式函数:implicit修饰的函数。// 重要的是:参数类型和返回类型!// implicit 隐式转换。//有可能成功,也可能会失败。// 函数名字不重要。
2024-12-11 20:44:27
1008
原创 Scala隐式值
def sayName(implicit name: String = "小花"): Unit = {// 2. 需要修改这个默认值时,定义一个同类型的 隐式值:implicit修饰变量。implicit val defaultValue:String = "小明"// 1. 定义函数的默认参数时,添加implicit。println(s"我叫:$name")// 需求:更改函数的默认值,不要写死。sayName("非洲酋长")// 函数的默认参数值:小花。// 函数的默认参数。
2024-12-11 20:43:15
325
原创 Scala测试
/ 需求:给字符串补充一个功能isPhone,判断它是不是一个手机号。// 私有作用域内的隐式转换,限制其使用范围,使其更符合局部使用场景。println(s"$str 的检查结果是:$rs")println(s"$str 的检查结果是:$rs")// 通过隐式转换调用isPhone方法进行判断。// 私有类,外部无法直接访问其构造函数等细节。
2024-12-11 20:40:55
397
原创 Scala隐式类
/第二步:定义一个隐式转换函数,把BaseUser ---> PowerUser。//第一步:定义一个有updateUser功能的类PowerUser。u1.updateUser()//添加一个新功能。//之前的类,不要改动。//给这个类添加新的功能。
2024-12-11 20:37:14
464
原创 Scala泛型
/ getMiddleEle(list(1,2,3,4,5)) ==> 5/2 = 2 ==> 下标为2的元素是:3。// getMiddleEle(list(1,2,3,4)) ==> 4/2 = 2 ==> 下标为2的元素是:3。// List是数据类型,表示一个列表。//List[Int]:List是列表,[Int] 是说列表中的每一个元素都是int!// (2) 名称合法就行,没有固定的。//类型参数 -----泛型(数据类型是变化的)// 中间位置的下标 = 长度/2。
2024-12-11 20:35:47
225
原创 Scala正则表达式
/ 11.\w:[a-zA-Z0-9_] 63个字符串中的任意一个."一个字"// 6.拖字符^如果在正则的最前面,表示要匹配的内容必须在字符串的开头。// 7.拖字符$如果在正则的最后面,表示要匹配的内容必须在字符串的结尾。// 2.[a-z]:表示从a到z的26个字母中的任意一个。// 3.[A-Z]:表示从A到Z的26个字母中的任意一个。// 4.[0-9]:表示从A到Z的26个字母中的任意一个。// 8.英文的 . :表示除了换行之外的其他的任意字符。// 10.\D:表示除\d 之外的字符。
2024-12-03 16:00:25
234
原创 Scala模式匹配
0 || year % 400 == 0 => println(s"${year}是闰年")case Array(1,x,y) => println(s"三个元素,且第一个为1.第二个是${x},第三个是${y}")case Teacher(a,b) => println(s"${b}老师 ${a}")case Array(1,_*) => println("n个元素,且第一个为1")case Stu(a) => println(s"学生${a}")case _ => println("不到")
2024-12-03 14:46:49
392
原创 Scala数组
/ArrayBuffer(1,2,3,4,5),取出3,4组成一个新的数组。val arr5 = Array.ofDim[Int](2,2)//2行2列。var arr7 = arr6.grouped(3)// 3个元素一组。//1-10的数组. 每隔2个range不包括终点, 2是步长。println(s"第一个元素是:${rs(0)}")// slice(起点下标,终点下标)不包括终点下标。// inedexOf: 找到第一个元素的下标。// 有,就返回第一次出现的下标。//不可变数组 Array。
2024-11-19 14:57:09
319
原创 Scala练习,图书馆书籍管理系统
1.创建一个可变 Set,用于存储图书馆中的书籍信息(假设书籍信息用字符串表示,如 “Java 编程思想”“Scala 实战” 等),初始化为包含几本你喜欢的书籍。4.检查某一本特定的书籍(如 “Python 从入门到实践”)是否在图书馆集合中,使用 contains 方法,并输出结果。7.求出两个图书馆书籍集合的交集,使用 intersect 方法,并输出结果。6.求出两个图书馆书籍集合的并集,使用 union 方法,并输出结果。5.创建另一个可变 Set,表示另一个图书馆的书籍集合。
2024-11-05 16:32:17
292
原创 Scala Set集合
val set4 = set3 ++ immutable.Set("语文","思政","体育")/* val set1 = immutable.Set("数学","语文","英语")val set1 = mutable.Set("数学","语文","英语")val set1 = mutable.Set("数学","语文","英语")set1 ++= mutable.Set("语文","思政","体育")val set2 = set1 + "物理"val set3 = set1 - "数学"
2024-11-05 15:27:28
471
原创 trait的加载顺序
/2.有多个父构造器,按从左到右的顺序,先执行左边的父构造器,再执行右边的父构造器。//1.先执行父类构造器,在执行子构造器。
2024-10-22 16:58:14
177
原创 问题:设计一个point类,,,其x和y坐标可以通过构造器提供。
/ Point (x,y) 中的x,y不要加数据类型,它就表示函数的调用。// val 需要加在label前面,是因为label是这个子类的成员。// 构造函数中的参数,如果加了val,var就是自动成为类的成员。// x,y前面不要加val,因为它会从Point中继承过来。
2024-10-22 16:56:00
247
原创 Scala的特质trait(2)
println(s"${age}岁, ${height}大高个, ${hair}")val height = 180 // val 不可修改,var可以修改。// val 修饰的,可以用override重写。//特质可以有抽象属性,具体属性,抽象方法,具体方法。// var 修饰的,可以直接赋值。println(s"嘴角微微扬起")// 具体方法可以重写(可选)//具体属性可以重写(可选)//抽象属性 要具体实现。//抽象方法 要具体实现。//抽象属性(没有=)//抽象方法(没有=)
2024-10-22 15:48:11
391
原创 Scala的特质trait
/作用:(1)当做接口来使用,实现多继承;def pause(): Unit ={//具体方法。println(s"Mp3 播放${cd}")println("Mp4 播放器 - 视频")val color = "red"//具体属性。//trait:特质(美丽,智慧,耐心....)//一个子类继承自一个抽象类,并实现多个特制。//子类继承特质,必须要实现所有的抽象的成员。//格式:trait 名字 {属性,方法}//trait 不能直接new。//一个子类有多个父类 - 多继承。
2024-10-22 15:47:18
329
原创 Scala的内部类
Scala的内部类是指定义在类或对象内部的类。与java相同的是创建在类内部的新类都称为内部类,与java不同之处在于Scala中把定义在对象内部的类也统称为内部类。Scala的内部对象是指定义在类或对象内部的对象。在java中没有内部对象的概念,由于Scala中存在Object单例对象,因此出现了1内部对象的概念。3、Scala的1匿名类是指没有名字的类。println("Engin 加速.....")//实例化一个内部类:格式 new 对象.内部类。//直接去操作类的私有属性。
2024-10-17 19:19:22
458
原创 Scala的抽象类
3、Scala的抽象类成员包括成员属性和方法。Scala的成员属性有抽象的和非抽象的,而java中只有非抽象的。对于成员方法,Scala和java中都可以有抽象的和非抽象的,但是在定义时,Scala不需要abstract关键字修饰。Scala的抽象类语法与java中的相同,都是通过abstract关键字进行定义的。抽象类是一个不能被实例化的类。无论是在Scala上还是在java中都不可以直接创建对象,抽象类通过子集创建对象。1、Scala的抽象类定义。2、Scala的抽象类语法。
2024-10-15 22:48:05
325
原创 Scala的继承和多态
在Scala中,子类继承父类使用关键字extends,这一点与java相同。继承可以复用代码和实现多态。继承就代表子类可以继承父类的特性并且子类可以在自己内部实现父类没有的特性,以实现代码的复用和多态特性。关于继承,java中也有相关概念,Scala中继承的定义为原有类的基础上定义一个新类,原有类称为父类,新类称为子类。
2024-10-15 16:16:10
291
原创 Scala写汉诺塔代码
f(要移动到盘子的个数,起点,辅助柱子,终点)汉诺塔步骤:记:f(n,"A","B","C")表示把n个盘子从A柱子上移动到C柱子上,借用B柱子的过程。1、基本情况(直接能求的):f(1,“A”,“B”,“C”),可以直接求,从A--->C。2、递归情况(大事化小,自己调用自己):f(n,"A","B","C")递归函数就是自己调用自己的函数。写汉诺塔需要用到递归函数。
2024-09-29 18:00:17
710
原创 Scala伴生类和伴生对象
Scala是比Java更加面向对象的编程语言,面向对象说明一切皆对象,但是在Java中有静态的成员,静态成员属于类不属于对象。当同名的类和单例对象在同一个源码文件中时,这个类称为单例对象的伴生类,对象称为类的伴生对象,这两者是相互的。(1)生成静态成员:如果Scala中需要生成类似静态成员的应用场景,可以使用伴生对象解决该问题。(2)伴生对象和类之间的相互访问:伴生对象和类的私有成员可以相互访问。2、Scala的伴生对象与伴生类解决的问题。1、Scala的伴生类与伴生对象的定义。
2024-09-26 08:39:26
157
原创 Scala属性修饰符
3、private:不可访问 + 不可修改 ,因为private表示私有的。Scala的定义属性的修饰符有三种:val,var,private-私有。1、var:可以访问 + 可以修改。2、val:可以访问 + 不可修改。
2024-09-24 15:34:28
442
原创 小知识scala中0.1+0.2为什么不是0.3而是0.30000000000000004
在scala解释器中输入0.1+0.2并按【Enter】,发现显示的结果为0.30000000000000004,是一个双精度的浮点数,如图所示,这就是浮点数精度问题导致的结果。解释器中输入BigDecimal(0.1)+BigDecimal(0.2)==BigDecimal(0.3)则会返回true这说明使用BigDecimal后保证了浮点数的精度。win+r进入控制台输入scala,在scala解释器中输入0.1+0.2 == 0.3再按【Enter】会发现结果返回为false。
2024-09-10 17:15:31
348
原创 如何用IDEA编辑Scala代码
win+r打开控制台输入path找到C:\Program Files (x86)\scala\bin;3、右键src新建scala类选择Object输入一个名称即可。1、在Windows控制台中验证环境变量是否配制成功。进去后选择全局库点击加号选择Scala SDK。2、打开IDEA点击左上角文件选择项目结构。点击后再点三次确定即可。有就说明已经配置好了。
2024-09-10 16:15:11
460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人