自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 WritableComparable排序案例实操

排序是MapReducer框架中最重要的操作之一。MapTask和ReduceTask均会对数据按照key进行排序,该操作属于Hadoop的默认行为,任何应用程序中的数据均会被排序,而不管逻辑上是否需要。默认排序是按照字典顺序排序,且实现该排序的方法是快速排序。自定义排序WritableComparable原理分析:@Overrideint result;// 按照总流量大小,倒序排列result = 1;

2024-04-11 14:53:17 983

原创 python数据分析和可视化【5】泰坦尼克号幸存者数据分析

使用Seaborn库中的函数,对泰坦尼克号幸存者数据“titanic”进行数据分析与可视化。3)利用Seaborn绘制年龄的直方图和密度图。7)对年龄进行分级,分开老人和小孩的数据。4)显示登船地点(S,C,Q)的人数。6)基于性别,绘制乘客年龄分布箱线图。2)用年龄的均值进行缺失值的填充。5)用柱状图可视化乘客的性别分布。1)查看有无缺失值。

2024-04-11 08:21:47 322

原创 Partition分区案例实操

我们自定义的分区数和在driver类中的设置的分区数之间有一定的关系。(1)如果ReducerTask的数量>getPartition的结果数,则会多产生几个空的输出文件part-r-00xx;(2)如果1

2024-04-10 19:56:07 402

原创 序列化案例实操(统计每一个手机号耗费的总上行流量、总下行流量、总流量)

序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。在企业开发中往往常用的基本序列化类型不能满足所有需求,比如在Hadoop框架内部传递一个bean对象,那么该对象就需要实现序列化接口。具体实现bean对象序列化步骤如下7步:(1)必须实现Writable接口(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造super();

2024-04-05 19:19:37 944

原创 python数据分析和可视化【4】星巴克数据分析

如果我们只关心星巴克咖啡门店,则只需获取星巴克中Brand的数据集,并查看全世界一共有多少家星巴克门店。有一组关于全球星巴克门店的统计数据directory.csv,分析了在不同国家和地区以及中国不同城市的星巴克门店的数量。(2)查看全世界一共有多少个国家和地区开设了星巴克门店,显示门店数量排名前10和后10的国家和地区。(4)用柱状图绘制排名前10的分布,并在图中标注出星巴克门店数量最多的城市。(6)按照星巴克门店在中国的分布情况,统计排名前10的城市。(3)显示拥有星巴克门店数量排名前10的城市。

2024-04-05 19:11:01 616

原创 WordCount案例实操

大家引入类的时候一定注意不要引入错了,这里涉及的类太多了,我就是引入错了导致有bug找了半天才发现问题,比如这个Text,大家输入完Text不要立即点回车,一定要注意看看是否导入了正确的类。实现过程:按照MapReduce编程规范,分别编写Mapper,Reducer,Driver。(4)创建包名:com.atxiaoyu.mapreduce.wordcount。(1)创建maven工程,MapReduceDemo。在给定的文本文件中统计输出每一个单词出现的总次数。这个文件的内容就是执行的词频统计的结果。

2024-03-24 16:37:40 568

原创 HDFS的API操作

我们接下来封装一下,因为这一套初始化流程和关闭资源流程在很多操作中都得用,用一次写一次就十分麻烦,所以我们把他写成两个方法:init()初始化方法和close()关闭资源方法,每次用的时候直接调用一下就好了。首先拷贝hadoop-3.1.0到非中文路径(比如d:\),然后配置HADOOP_HOME环境变量和Path环境变量。这里涉及到三个操作:对文件名称的修改,文件的移动和更名,目录更名。运行一下发现下载成功,里面只有一个sunwukong.txt文件。分为三类:文件删除,空目录删除,非空目录删除。

2024-03-21 22:25:23 460

原创 python数据分析和可视化【3】体检数据分析和小费数据分析

(1)读取testdata文件,利用agg函数统计数据中‘淋巴细胞计数’的和与均值、‘白细胞计数’的和与均值。(将数据按照性别和是否抽烟进行分组,查看分组后小费的情况)(3)分析男性顾客与女性顾客谁更慷慨。(将数据按照性别进行分组,查看分组后小费的情况)(4)分析日期与小费之间的关系。(将数据按照星期分类,查看分类后的小费情况)(3)同时输出淋巴细胞计数的均值、血小板计数的均值与标准差。(2)将列名修改为汉字,并显示前5行数据。(1)读取数据,并查看数据的描述信息。(2)统计不同性别人群的血小板计数。

2024-03-20 14:46:18 700 1

原创 HDFS的常用命令

(这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10)例:在本地创建一个liubei.txt,输入liubei,然后追加到shuguo.txt文本内容的后面。例子:从hdfs拷贝shuguo.txt到当前目录下,更名为shuguo2.txt。说明:27表示文件大小;作用:从HDFS的一个路径拷贝到HDFS的另一个路径。例:在本地创建一个shuguo.txt,然后。

2024-03-20 14:44:52 556

原创 Hadoop集群基本测试

1.各个模块分开启动/停止(配置ssh是前提)常用(1)整体启动/停止HDFS(2)整体启动/停止YARN2.各个服务组件逐一启动/停止(1)分别启动/停止HDFS组件(2)启动/停止YARN。

2024-03-15 16:17:15 962

原创 python数据分析和可视化【2】鸢尾花数据分析

读取iris数据集中鸢尾花的萼片、花瓣长度数据(已保存为csv格式),并对其进行排序、去重,并求出和、累计和、均值、标准差、方差、最小值、最大值。(2)查看鸢尾花数据集中有几种花瓣长度。(首先提取所有数据的花瓣长度,然后进行去重)2.获取数据:可利用csv模块进行读取,也可用其他方法进行读取。(3)求数据中花瓣长度的和,均值,方差,最小值及最大值。3.数据清理:对读取的数据进行处理(将索引号去掉等等)1.导入模块 (格式为import …(1)将鸢尾花数据集的花瓣长度进行排序。

2024-03-13 20:37:25 1196

原创 GitHub和Gitee的基本使用和在IDEA中的集成

上面的GitHub是国外的网站,所以访问的速度特别慢,这个Gitee是我们国内的平台,访问速度较快。新增文件到Gitee中的操作跟前面GitHub的一样,这里就不多赘述了。点击Clone后然后按照提示步骤创建就行了。(提交到本地仓库和gitee远程仓库)

2024-03-09 13:00:09 586

原创 GitHub Desktop的常用操作【图形化】

提交等同于产生了一个新的文件,会有一个新的版本号,那么我们怎么看到这个版本号呢?这里就显示c文件被删掉了,我们还是要提交后仓库中的文件才会被删掉。我们如果勾选上这个选项,那这个仓库就从我们系统中移除了。而且通过版本号可以找到文件(55 3ced7…我们把本地的c文件删掉,但是仓库中的文件还在。合并成功后会发现主分支的目录下有了这两个文件。

2024-03-07 16:49:07 611

原创 python数据分析和可视化【1】

这学期开了门课是python数据分析和可视化,今天第一次实验课主要是复习了一下python基础和常用的一些操作。

2024-03-06 13:06:31 410

原创 Maven【5】在IDEA环境中配置和使用Maven

每次创建 Project 后都需要设置 Maven 家目录位置,否则 IDEA 将使用内置的 Maven 核心程序(不稳定)并使用默认的本地仓库位置。这样一来,我们在命令行操作过程中已下载好的 jar 包就白下载了,默认的本地仓库通常在 C 盘,还影响系统运行。配置之后,IDEA 会根据我们在这里指定的 Maven 家目录自动识别到我们在 settings.xml 配置文件中指定的本地仓库。按照idea工程的布局,project相当于父工程,里面的module相当于子工程(模块工程)

2024-03-02 21:35:56 987

原创 Maven【4】(继承)(命令行操作)

这里还要注意一点,如果子工程的groupId和version与父工程的一样,那么子工程的groupId和version就可以省略。打包方式为 pom 的 Maven 工程中不写业务代码,它是专门管理其他 Maven 工程的工程。然后我们可以在子工程中引用那些被父工程管理的依赖,子工程引用父工程中的依赖信息时,可以把版本号去掉,把版本号去掉就表示子工程中这个依赖的版本由父工程决定。本质上是 A 工程的 pom.xml 中的配置继承了 B 工程中 pom.xml 的配置,本质上是pom文件里的配置内容的继承。

2024-03-01 17:45:57 975

原创 Maven【3】( 依赖的范围,传递性和依赖的排除)(命令行操作)

main目录下的类为HelloServlet,compile范围引入的依赖为:pro01-maven-java,pro01-maven-java中的类为:Calculator,我们只需验证main目录下的类为HelloServlet能否使用Calculator即可。我们可以看到pro01-maven-java 依赖了 junit,但是在 pro02-maven-web 工程中查看依赖树的时候并没有看到 junit,所以test范围不能传递。所以配置依赖的排除其实就是阻止某些 jar 包的传递。

2024-02-29 18:11:38 888

原创 Maven【2】( Web 工程依赖 Java 工程)(命令行操作)

这是因为junit 依赖了hamcrest-core,然后基于依赖的传递性,hamcrest-core 被传递到我们的工程了。我们打包后可以发现,通过查看 war 包内的结构,我们看到被 Web 工程依赖的 Java 工程确实是会变成 Web 工程的 WEB-INF/lib 目录下的 jar 包。然后我们在web工程中编写一下测试代码,依赖了以后,依赖了Java工程了,在一个工程里面能不能用到另一个工程的类呢。(测试操作中会提前自动执行编译操作,测试成功就说明编译也是成功的。命令,生成 war 包。

2024-02-28 10:51:49 952

原创 Maven【1】(命令行操作)

这个命令的作用是:将本地构建过程中生成的 jar 包存入 Maven 本地仓库,而且安装操作还会将 pom.xml 文件转换为 XXX.pom 文件一起存入本地仓库。注意:运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。是指当前工程打包的方式,默认以jar包的方式进行打包,说明这是一个Java工程如果取值为war的话,生成war包,说明这是一个Web工程。打包的结果——jar 包,存放的目录:target。2.然后是具体的子标签,第一个是。标签来配置具体的依赖的信息的。

2024-02-22 10:16:50 1100

原创 【Java】一只小菜坤的编程题之旅【4】

【代码】【Java】一只小菜坤的编程题之旅【4】

2023-10-22 09:12:46 162 2

原创 【Java】栈和队列的模拟实现(包括循环队列)

【代码】【Java】栈和队列的模拟实现(包括循环队列)

2023-10-18 08:43:07 458 1

原创 【Java】一只小菜坤的编程题之旅【3】

这个题我们用一个非常简单的思想就能实现,我们先将字符串转换为字符数组,然后对字符数组进行排序,然后再把排序完的字符数组转换为字符串,比较他们是否相等。

2023-08-13 16:26:04 1222 4

原创 【Java】一个关于装箱的某里面试题

因为c和b是200,不在这个范围内,所以返回的都是new的对象,等号两边都是引用类型,比较的不是c和d的值,而是类似于地址的东西,所以不相等。那也就是说,我们在进行自动装箱的时候,人家在底下会调用这个方法来帮我们进行装箱。因为a和b都是100,在这个范围之内,所以返回的都是相同的值,所以相等。第一个为true,第二个为false.求这个代码的输出结果。

2023-08-06 16:10:14 408 2

原创 【Java】String类常用方法总结

注意:只会去掉字符串中的左右空格,但保留中间空格,也会去掉字符串开头和结尾的空白字符(空格, 换行, 制表符等)这个方法的作用是比较两个字符串的大小关系。相同返回0,大于返回一个整数,小于返回一个负数。因为String这个类实现了Comparable接口,所以重写了compareTo方法。这个方法的作用是比较两个引用所指向的对象当中的内容是否一致。这个方法与compareTo方式相同,但是忽略大小写比较。此时我们认为str1和str2是相等的,输出0。

2023-07-25 22:26:06 387 2

原创 【Java】Clonable 接口

理论上来说,给克隆的对象改了值应该不会影响原对象的money值,我们这都是克隆出去的,但是当我们运行的时候却发现原来对象的money值也被修改了(这种拷贝方式叫做。首先一个前提,他是可克隆的,我们要实现一个Clonable 接口。我们解决方法是把Money也克隆出来就可以了,Money也必须支持克隆,也就是实现Clonable 接口。可以发现里面是空的,我们把这种空接口叫做标记接口,作用就是表示当前对象是可以被克隆的。所以如果要实现深拷贝,你当前对象里面的每一个对象都得克隆。这样就实现了简单的克隆。

2023-07-23 20:13:02 631 3

原创 【Java】通过Comparator比较器的方式给对象数组排序

这个方法可以传两个参数。)可是这种方法也有缺点,就是不太灵活,太固定了。如果我们学生类不实现。我们会发现现在是单独的一个类,不会对Student类进行修改。能不能做到非常灵活的实现排序呢?我们还有另一种方法:比较器。我们定义另一个类实现另一个接口,然后实现里面的抽象方法。这样就是实现了对成绩排序。

2023-07-21 21:44:34 379 2

原创 【Java】重写compareTo()方法给对象数组排序

这里定义了一个Student数组,数组大小为4,也就是说数组中有4个学生,然后分别实例化了4个学生,把他们的名字年龄和成绩都输入了进去,现在我们想以年龄或成绩进行排序,那应该怎么实现呢,还是用Arrays.sort()方法吗?我们进入这个第二行报的错,显示源码中第320行报错:源码中这几段代码的意思是取到数组中的某个值,把这个值转化为了一个Comparable类型(这个Comparable是一个接口),然后调用一个compareTo()方法。当我们把这个数组进行排序时,报错了,报了一个类型转换异常。

2023-07-20 20:44:58 1333 2

原创 【Java】一个简单的接口例子(帮助理解接口+多态)

一个接口+四个类(键盘类+鼠标类+电脑类+测试类)笔记本类:包含开机功能、关机功能、使用。接口:包含打开设备、关闭设备功能。(不需要具体实现,给出框架即可)请实现笔记本电脑使用USB。接口,并具备点击功能。接口,并具备输入功能。

2023-07-19 16:06:19 736 1

原创 【Java】一只小菜坤的编程题之旅【2】

因为丑数只能被2,3,5整除,所以让n依次去除2,3,5,如果最后是n为1,就说明是丑数。看着题目挺复杂,其实思想就是二分查找的思想。

2023-07-12 14:36:52 410

原创 【Java】一只小菜坤的编程题之旅【1】

这本来是非常简单的一道题,但我一看到题目就想暴力遍历,写了好几次都出现错误,但好在最后还是搞出来了,但是时间和空间复杂度都比较高。此题技巧:使用快慢指针,这种解法不需要额外的空间,而且时间复杂度非常低。此题技巧:使用双指针法。

2023-07-10 14:00:46 344 1

原创 【Java】数组中的拷贝方法与初步理解深浅拷贝

我们再来看看另外一种情况:还是有个数组arr1,但是里面存的是引用,可以理解为地址,数组中的元素都分别指向一个对象,那我们要拷贝arr1,第一步是要申请一个跟这个数组一样大的数组arr2,那么拷贝就是把原数组里的值拷下来,放到新数组里。但这里要注意,并不是拷贝引用类型就是浅拷贝,这要看代码具体实现的过程。假设我们现在有一个数组arr1,这个数组中放的是简单的基本数据类型,我们要拷贝这个数组,拷贝完后放到arr2中。我们进入到这个函数的源码中,可以看到这两个参数一个是原始数组,一个是拷贝后的新的长度。

2023-06-26 10:19:00 662 2

原创 【Java】以数组为例简单理解引用类型变量

的存储空间,主要用来存储程序运行时数据的,如果对内存中存储的数据不加区分的随意存储,那对内存管理起来将会非常麻烦,就像一个杂乱的房间,你如果想在这个房间里找一个东西的话,找起来就会非常麻烦。虚拟机栈(JVM Stack): 与方法调用相关的一些信息,每个方法在执行时,都会先创建一个栈帧,栈帧中包含 有:局部变量表、操作数栈、动态链接、返回地址以及其他的一些信息,保存的都是与方法执行时相关的一 些信息。而引用数据类型创建的变量,一般称为对象的引用,其空间中存储的是对象所在空间的地址。(假设地址为0x11)

2023-06-24 09:42:58 606 1

原创 机器学习(西瓜书)简答题总结

2.计算类内散度矩阵和类间散度矩阵:类内散度矩阵是指同一类别的样本之间的散度矩阵,而类间散度矩阵是指不同类别之间的散度矩阵。5.模型评估:将测试集映射到低维空间中,然后采用训练好的分类器对样本进行预测,最后根据预测结果计算出模型的准确率、召回率、F1-score等指标进行评估。3.计算投影向量:投影向量是指将原始数据映射到低维空间中的向量,可以通过计算类内散度矩阵和类间散度矩阵的特征向量来得到。2.预测性能好:由于集成学习可以组合多个弱学习器,所以它可以将多个模型的优点进行整合,从而提高整体的预测性能。

2023-06-14 13:36:02 1591 1

原创 【Mysql】表的增删改查(一)

本篇文章我们学习一下表的增删改查的一些基础操作,有关约束等相对较难理解的操作在下篇文章再来学习。增删查改中,查最为复制,我们要熟练的去练习查数据。

2023-03-29 10:25:19 1663 1

原创 【Mysql】一学就会!一劳永逸的解决插入中文字符时的报错

我们在利用insert在进行插入操作时,有的人一旦插入中文字符,就会报错,但是语法本身没有任何问题。原因是对于当前数据库来说,内部存储中文是需要指定对应的。然后重启MySQL服务器,右键选择重新启动,就🆗了。(刚才改的配置影响的是新的库,旧的库用的还是之前的编码)但是这个方法有个缺点,意味着后面每个库创建的时候都要手动指定,这样就十分麻烦。然后打开这个文件,修改下面这两处代码,改为下图红框圈住的代码。这种方法可以一劳永逸,就是直接修改数据库的。我们来查看一下数据库的字符集。的,数据库默认的字符集是。

2023-03-23 20:18:02 860 1

原创 【Mysql】sql语法--创建数据库和表操作

这里我们创建了一个名字为my319的数据库。注意,我们在命令行中输入sql有一些小技巧:1.我们可以使用⬆/⬇切换到上一条或者下一条sql语句2.如果有一条sql语句输入了一办不想执行了,按Ctrl+c来终止这条sql语句就像这样:

2023-03-20 15:09:10 3093

原创 人生重开模拟器(python)-----帮你快速掌握python语法

(这里我们实行的只是单纯用python实现的简化版的人生重开模拟器,为1-10岁发生的事件,可以自行修改和增加语句设置为任意年龄段发生的事件)这个小游戏可以帮助我们练习python的语法,提高我们的逻辑组织能力,从而迅速上手python。(这里由于我们代码中的判断语句较少和输入的属性值问题,所以重复事件可能会比较多)

2023-03-04 11:34:14 205

原创 4种编程中常考的排序方法(选择,冒泡,快速,二路归并)

快速排序(Quicksort)是对冒泡排序的改进,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。打印前是乱序,打印后是有序的,说明我们的算法没问题。

2022-10-07 10:13:39 1369

原创 【力扣】链表题目

【代码】【力扣】链表题目。

2022-09-14 19:50:58 255

原创 【Java】三人扑克牌随机发牌

要求:实现给三个人随机发牌,每人发五张牌,而且显示剩余的牌。代码:Card和CardDemo:Test:实现效果:每次运行的结果都不一样,实现了随机发牌。

2022-07-07 11:09:59 788

空空如也

空空如也

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

TA关注的人

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