- 博客(47)
- 收藏
- 关注
原创 Hadoop的序列化和反序列化
/readFields:反序列化的时候,调用,从文件中读出内容,还原这个对象。//dataOutput.writeUTF(字段);// //hadoop序列化:把对象保存到第一个文件中。//hadoop反序列化:从第一个文件中读取对象。//write:在序列化的时候,调用,把对象写到文件。//字段=dataInput.read();//字段顺序要与write中的顺序一致。//实例化student对象。//支持hadoop的序列化。//2.补充一个空参构造。//学生类,姓名,年龄。
2025-04-09 11:27:58
403
原创 序列化和反序列化--java实现
/ Student student = new Student("张三", 18);//Java反序列化:从文件student_java.ser中读出内容,还原这个对象。// //1.让这个类实现Serializable接口。// //java序列化:把对象保存到第一个文件中。//实例化student对象。// //2.创建一个输出流。// //3.把对象写入到文件中。//// 关闭。//学生类,姓名,年龄。
2025-04-09 11:00:26
122
原创 简单的数据清洗
/ // output1会自动被创建,如果它已经存在,程序会报错!// // 6. 设置输入和输出路径。// 3. 关联Mapper和Reducer。// 4. 设置Mapper输出的KV类型。//设置操作集群时的用户名为root。// 5. 设置最终输出KV类型。// mapreduce的Driver。// 2. 关联本地的jar。// 7. 提交job。//1.继承Mapper类。//2.重写map方法。
2025-04-09 10:57:43
359
原创 自定义分区器
/Text,LongWritable:表示map函数输出的数据的格式。// // output1会自动被创建,如果它已经存在,程序会报错!// // 6. 设置输入和输出路径。// 如果key1和Key2的code相同,那么他们会被分配到同一个分区,保存到同一个文件。// 如果单词是以a~m开头的,那么会被分配到第一个分区,//2.遍历单词,并输出<单词,1>的键值对。//1.获取一行数据,并拆分成一个个的单词。
2025-04-09 10:55:00
237
原创 Mapreduce的工作原理
Reduce Task 接收到所有 Map Task 的输出后,会按照键(key)对数据进行排序和分组,然后调用 Reduce 函数对每个键对应的值集合进行处理。Shuffle 是 MapReduce 中的关键步骤,负责将 Map Task 的输出数据传输到 Reduce Task。Map 端:Map Task 将输出数据写入磁盘文件,每个分区的数据会被标记为不同的 Reduce Task。Reduce 端:Reduce Task 会从各个 Map Task 拉取属于自己的分区数据,并进行合并。
2025-03-31 19:52:15
256
原创 Hadoop集群的常用命令
检查 HDFS 健康状况:`hadoop fsck <路径> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]`删除文件或目录:`hdfs dfs -rm <路径>` 或 `hdfs dfs -rm -r <目录路径>`(递归删除)运行 MapReduce 作业:`hadoop jar <jar文件> <主类名> <输入路径> <输出路径>`复制文件:`hdfs dfs -cp <源路径> <目标路径>`
2025-03-31 19:48:39
274
原创 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:37:03
170
原创 linux常见操作命令
cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全。ls -a //查看当前目录下的所有目录和文件(包括隐藏的文件)mkdir /bin/tools //在指定目录下创建一个名为tools的目录。ls /bin //查看指定目录下的所有目录和文件。cd /bin //切换到根目录下的bin目录。
2025-03-03 19:34:37
346
原创 虚拟机IP的配置,让它上网
linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!选择VMnet8,IP地址:192.168.10.0,子网掩码:255.255.255.0。然后,点击NAT设置,进入填网关:192.168.10.2。将这个虚拟机的网络设置重启,让它生效。首先打开虚拟机,点击上面的虚拟网络编辑器。具体设置为:进入虚拟机,修改对应的IP。(3)设置虚拟机的IP。检查是否能Ping通外网。
2025-03-03 19:28:04
470
原创 虚拟机安装
如果安装VMware17.6时,提示缺少文件,再来安装它,否则不用。7.再次打开虚拟机,进去之后就会碰到localhost login:填用户或者root,接着回车,下面是密码,输入时不会显示,输完点回车,第一次登录成功不会显示时间,后面登录成功后会显示登录时间。3.打开虚拟机,点击新建新的虚拟机,选择自定义,一直下一步,遇到安装程序光盘印像可以选择稍后安装,操作系统选择Linux,版本CentOS 7 64位,虚拟机名字自定义,后面点下一步,直接安装。4.如果没有安装操作系统,虚拟机启动不了。
2025-02-19 11:28:46
151
原创 Scala的导入
/格式:import 包名.{旧名字=>新名字}//(1) 创建包:在src上右键,新建软件包。//(3)在包上右键,创建类。import 包名.类名。// //局部导入。//把导入的成员重新改个名字。//(2)填写包名:小写。//导入所有,排除一部分。//导入包下的所有的类。
2024-12-12 08:04:52
558
原创 Scala中隐式值、隐式转换和例题
/ 2.需要修改这个默认值时,定义一个同类型的隐式值:implicit 修饰变量。//定义一个特殊的转换函数,把str===>StrongString的对象。//需求:更改函数参数的默认值(不传入这个值的时候,用到的值),不要写死。// println(s"$str 的检查结果是:$rs")// //把Int类型,转换成Double类型。//隐式函数:implicit修饰的函数。//重要的是:参数类型和返回值类型!//implicit 隐式转换。// //隐式转换失败。
2024-12-12 08:04:32
640
原创 Scala的数组
/ // 如果下标超出了范围,会报错 ArrayIndexOutOfBoundsException。// //1-10是数组,每隔2个 range不包括终点,2是步长。// //2.访问.数组名(下标)。//indexOf(元素): //找到元素的下标。// //不可变数组Array。// //3.快速填充数组内容。//有,就返回第一次出现的下标。// //1.创建不可变数组。//找到大于100的元素。// //4.遍历。
2024-12-12 08:02:32
408
原创 Scala中正则表达式
/ 6.脱字符 ^ 如果在正则的最前面,表示,要匹配的内容必须在字符串的开头。// 7.脱字符 $ 如果在正则的最后边,表示,要匹配的内容必须在字符串的结尾。// 2. [a-z]:表示从a到z的26个字母中任意的一个。// 3. [A-Z]:表示从A到Z的26个字母中任意的一个。// 8.英文的 . :表示除了换行之外的其他的任意一个字符。// 4. [0-9]:表示从1到9的10个中任意的一个。// val name2 = "abc" //不符合。
2024-12-12 08:02:05
631
原创 Scala中函数默认参数和隐式类、对象
/第二步:定义一个隐式转换函数,把BaseUser ---> PowerUser。//第一步:定义一个有updateUser功能的类PowerUser。// println("偷偷调用implicit")sayName() //输出结果:小花。// implicit val x:String="小美"//隐式类:implicit class == 隐式转换函数+类。u1.updateUser()//添加一个新的功能。sayName("小小") //输出结果:小小。
2024-12-12 08:01:54
525
原创 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[Int]:List是列表,[Int]是说列表中的每一个元素都是int!//(2)名称合法就行,没有固定的。//类型参数化 -------泛型(数据类型是变化的)// 用它来获取当前的列表的中间位置上的值。// 中间位置的下标=长度/2。
2024-12-12 07:57:23
358
原创 Scala模式匹配-基础使用
/ case _ => println("我不知道啊!// case "42" => println("湖北")// case "33" => println("浙江")// case "11" => println("北京")// case "31" => println("上海")// case"条件1"=>println("名称1")// case"条件2"=>println("名称2")// case"条件3"=>println("名称3")
2024-12-03 16:10:33
443
原创 Scala中条件守卫
/ case Array(1,x,y)=>println(s"三个元素,且第一个为1,第二个是${x},第三个是${y}")// case _: Int => println(s"$x 是Int类型的") //_:Int 表示变量是Int类型。// case Teacher(a,b)=>println(s"${b}老师${a}")// case Stu(a)=>println(s"学生${a}")// val t1=Teacher("小明","体育")
2024-12-03 16:04:40
397
原创 Scala中读取文件
writer.println(s"${b._1}次数是:${b._2}")val rs=content.split("\\W+")//正则表达式。val word=w.toLowerCase()//全小写。//Map不能直接排序,需要转成有序的集合。//W:表示非字符(,空格,?//4.根据出现的次数从高到低排序。//2.拆分字符串-->单词数组。//5.保存结果,涉及写入文件。//3.统计出现的频率。//W+:多个非字符。
2024-12-03 14:12:22
198
原创 Scala练习
writer.println(s"姓名:${s.name},语文:${s.yuwen},数学:${s.shuxue},英语:${s.yingyu},总分:${s.zongfen},平均分:${s.pinjunfen},名次为:${s.mingci}")writer.println(s"姓名:${s.name},数学:${s.shuxue},总分:${s.zongfen}")writer.println(s"姓名:${s.name},语文:${s.yuwen},总分:${s.zongfen}")
2024-12-03 14:12:00
420
原创 Scala的迭代器
/ val it1=li1.iterator.take(3)//.take(3)只取到前三个数。// println(it1.next())//作用:获取当前元素+移动迭代器。// println(it1.next())//作用:获取当前元素+移动迭代器。// println(it1.next())//作用:获取当前元素+移动迭代器。// it1.next()//移动一次迭代器。// it1.next()//移动一次迭代器。//依次输出List的元素。
2024-11-12 18:02:18
617
原创 Scala中set和case class的特点和例题
///case class 的定义语法:case class 类名(属性名:类型,属性名:类型)// println(book1)//println会自动去调用对象的toString方法。////设置一个Book。有三个属性:书名,作者,价格。// //判断一个类的两个对象是否相等。// //判断依据是书名相同。////case class的特点。////3.它可以实现了一些方法。////Set:特点去重。////1.数据是只读的。////2.可以省略new。
2024-11-12 17:01:19
480
原创 Scala例题
BookList+=new Book("002","星际远航:宇宙边缘的探索者"," 林羽",69,100)BookList+=new Book("003","时间裂缝:错乱时空的冒险","苏晓",78,28)val book1=Book("002","星际远航:宇宙边缘的探索者"," 林羽",69,100)BookList+=new Book("001","西游记","吴承恩",23.4,100)println(s"id:$id 不存在,删除失败")println(s"id:$id 存在,删除成功")
2024-11-12 16:58:52
1123
原创 Scala中set集的理解和应用
/ val set4 =set3++immutable.Set("语文","思政","体育")// val set1 = mutable.Set("数学", "语文", "英语")// val set1 = immutable.Set("数学", "语文", "英语")val xiaohua=mutable.Set("语文","思政","体育")// set1++=mutable.Set("语文","思政","体育")// set1-="数学"
2024-11-05 16:29:58
533
原创 Scala例题练习
val library=mutable.Set("java编程思想","Scala实战")val rs=library.contains("Python从入门到实践")val book=mutable.Set("java编程思想","动物世界")library-="Scala实战"library+="动物世界"library+="骆驼祥子"
2024-11-05 16:29:05
270
原创 Scala的访问权限
/ private[this] 可以 不可以 不可以 不可以 不可以 不可以。// private 可以 可以 不可以 不可以 不可以。//super. 子类访问父类的方法。//scala的访问权限。
2024-10-29 14:24:02
461
原创 Scala的例题练习
/题目:设计一个Point类,其x和y可以通过构造器提供。在设计一个子类LablePoint它来继承Point类,其构造器接收一个标签值和x,y坐标。//val 需要加在label前面,是原因label是这个子类的成员。//Point(x,y)中的x,y不要加数据类型,它就表示函数的调用。//构造函数中的参数,如果加了val,var就是自动成为类的成员。//x,y前面不要加val,原因它会从Point中继承过来。
2024-10-24 09:04:18
251
原创 Scala的特质运用
/new子类,先会执行父类的构造器,而此时filename没有值。//p.log中的log方法是谁定义的?val height = 180 //val不可以修改,var可以修改。//具体方法:把msg这个内容,写入到具体的文件中。//特质可以有抽象属性,具体属性,抽象方法,具体方法。//val修饰的,可以用override重写。//var 修饰的,可以直接赋值。//具体属性可以重写(可选)//具体方法可以重写(可选)//抽象属性 要具体实现。//抽象属性(没有=)//抽象方法(没有=)
2024-10-24 09:03:41
307
原创 Scala的trait的运用和实例操作
/ abstract class BackgroundPlayer(){} 这个括号里面可以传入参数,trait应用不可以。//2.有多个父构造器,按照从左到右的顺序,先执行左边的父构造器,再执行右边的父构造器。//作用:(1) 当做接口来使用,实现多继承;val color = "red" //具体属性。//子类继承特质,必须要实现所有的抽象的成员。//格式:trait 名字{属性 ,方法}//trait:特质(美丽,智慧,耐心)//1.先执行父构造器,再执行子构造器。//trait的加载顺序。
2024-10-24 09:03:04
566
原创 Scala的内部类
println("Enlish 加速.....")//实例化一个内部类:格式 new 对象.内部类()//问:类可以写____属性___和___方法___//使用内部类:new 对象.内部类名()//直接去操作类的私有属性。
2024-10-24 09:02:43
264
原创 Scala类的继承
var d1=new Dog()//new一个子类的对象时,先调用父类的构造器,在调用子类。// val ----> override val xxx=新值。//new 一个子类对象,或者实例化一个子类对象,会不会调用父类的构造器?//多态:同一个方法,传入不同的对象,产生不同的结果。// d1.run()//自己改写的。//override 重写父类的同名方法。//重写父类的同名方法:override。// d1.say()//继承的。//参数ob:是父类类型。
2024-10-17 07:48:18
373
原创 Scala的抽象类
/abstract:抽象类。有抽象方法的类,就是抽象类。抽象类方法就是没有方法体的方法 def autoRun.println(s"小米的自动驾驶.....${sheel},${hasDriver}")// val c=new AICar()抽象类不能去new,使用子类去实例化对象。println(s"小米汽车自动泊车功能")println("小米su7 的run")//抽象类:制定标准,让其他的类去实现!//把父类的标准变为现实-具体!sheel=3//重写父类的属性。//抽象的都要变成具体。
2024-10-17 07:47:46
262
原创 Scala其他高阶函数应用例题
/ var re3=arr.reduceRight((x,y)=>x-y)//reduceRight函数从右到左计算。// var re2=arr.reduceLeft((x,y)=>x-y)//reduceLefth函数从左到右计算。//4.求Array(-1,0,1,3,2)把这5个数字,按它们到0点的距离从小到大排序?//元素x,元素y,该函数返回布尔值。//3. sorted 排序:按元素的自然顺序(数值,或者字符串)排序。// //arr.fold(初始值)(迭代函数)
2024-10-14 19:25:00
425
原创 Scala中的foreach函数和flatten函数以及filter函数的应用例题
println(arr1.sum)//.sum是自带的求和的功能。//作用:对数组元素使用函数进行过滤。如果返回为true就保留。// arr.foreach(println)可以直接打印出来。var arr1=arr.flatten//不要小括号。arr1.foreach(println)//打印出来。//var t=arr(0)//选择哪个人。//任务:找到偶数的,并保存在新的数组中。//println(t0)//选择哪个值。//filter函数(过滤)//foreach函数。
2024-10-14 19:23:03
313
原创 Scala的高阶函数加map函数例题分析
var arr1=arr.map((x:Int)=>2*x)//map是一个高阶函数,因为它的参数是一个函数。//map的格式:新的数组= arr.map(2函数:接收一个元素,返回一个值)//map作用:通过对数组的每一个元素应用一个函数来构建一个新数组。// val fn=(x:Int)=>2*x//字面量格式定义函数。//问题1:把(1,2,3,4,5)变成(1,4,9,16,25)//问题2:把(-1,2,-3,-4)变成(1,2,3,4)//arr就是一个数组。
2024-10-14 19:22:26
296
原创 Scala中如何创建类和对象,并且运行
println(s"我是$name,$age 岁,性别 :$gender,唱歌 $songName")//private:在类的外部不可以访问,在类的里面可以访问,不可以修改。// gender="男"(在类的里面可以访问private)//定义属性的修饰符有三种:val,var,private。private var gender="女"//在类的内部,可以直接访问属性。//p1.name="小花花"//var:可以访问,可以修改。//val:可以访问,不可修改。//class 类名。
2024-09-29 18:04:20
298
原创 Scala函数的参数默认值案例
/ println(addxy(x=300))//x传入 结果300+200。// println(addxy(y=300))//y传入 结果100+300。// println(args)//是一个集合,把所有的参数都装入。// println(addxy())//x,y都不传入。// (1)定义时,在类型后面加*//例子:支持传入数量不等的参数,求它们的和。//如果一个函数,没有参数,可以省略()//如果不传入参数,就使用默认值。//支持传入数量不等的参数。
2024-09-29 18:02:44
241
原创 Scala的练习笔记
3.如果代码只有一句,可以省略{}例子:def getMax(x:Int,y:Int): Int= if(x>y) x else y。* def 函数名称([变量一:类型一;变量二:类型二.....]):返回值类型 ={* 1.返回值的类型可以省略。* 2.如果没有形参,可以省略定义时的()和调用时的()//目标:写一个函数,计算1-100的和。sum//最后一条语句表示返回值。//写一个函数,求两个数的较大值。//写一个函数,求三个数的较大值。* 最后一个语句表示返回值。//调用函数,并保持结果。
2024-09-29 18:02:20
137
原创 Scala的元组案例
println(s"最小值:$min,最大值是:$max")//1,定义元组:var 变量=(值1,值2...)var min=s._1//把元组拆开。//元组:把多个数据组合在一起,形成一个整体。//写一个函数,求三个数的最大值和最小值。(min,max)//返回多个返回值。//2,访问元组的数据::元组名._第几个。
2024-09-29 18:01:16
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人