自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式——单例模式

使用场景一个类只需要生成一个实例对象关键点类中对应的构造方法必须为私有方法,这种其外部就不能调用构造方法来构造对象在类中申明一个类对象,并且用static修饰。各种单例模式代码注:第一种、第六种、第七种、第八种值得好好看看第一种:public class singleton01 { private static final singleton01 INSTANCE = new singleton01(); private singleton01(){}; pu

2020-07-02 17:12:06 2850 3

原创 Spark SQL的执行流程

汇总spark sql方面的博客内容

2022-12-26 13:33:36 187 1

原创 操作系统整合版

首先:这是一篇我看了别人的笔记整合的版本。有遗漏的希望大家补充进程和线程定义:  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.  线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.进程和线程的关系一个线程只能属于一个进程,而一个进程可以

2021-08-08 17:19:28 171

原创 git的一些个人使用

常用的命令记录查看username、useremailgit config user.name "yourUserName"git config user.email "yourUserEmail"修改username、useremailgit config --global user.name "yourUserName"git config --global user.email "yourUserEmail"初始化仓库:git init将修改添加到本地# 添加一个

2021-06-10 23:00:36 147

原创 Sql中的窗口函数

案例原始数据## 入门程序写法一:select province,city,gdp,people, rank() over (partition by province order by gdp) as ranking from windowfunc;写法二:select province,city,gdp,people,rank() over w1 as ranking from windowfunc window w1 as (partition by province ord

2020-10-14 19:29:24 1277

原创 HBase过滤器

简要介绍HBase中的过滤器类似于SQL中的where条件。过滤器可以在HBase中的多个维度上进行数据的筛选操作。筛选器筛选的数据能够细化到具体的一个存储单元格上(行键、列族、列限定符)过滤器的参数过滤器中至少需要使用两类参数:抽象的运算符和比较器抽象的运算符:运算符含义LESS小于LESS_OR_EQUAL小于等于EQUAL等于NOT_EQUAL不等于GREATER大于GREATER_OR_EQUAL大于等于NO_OP无操作

2020-09-16 16:16:24 225

原创 聚类算法

概念及简介概念根据给定的样本,依据它们特征的相似度或距离,将样本归类到若干个“类”或“族”的数据分析问题两种常见的聚类算法:层次聚类层次聚类分为聚合和分裂两种方法。聚合法开始将每个样本各自分到一个类中,之后将相距最近的两类合并,简历一个新的类,重复次操作,直到满足停止条件。由此可见,聚合法是自下而上的。分类法开始将所有的样本分到一个类中,之后将已有类中相距最远的样本分到两个新的类,重复此操作,直到满足停止条件为止。由此可见,分类法是自上而下的。K-均值聚类基于中心的聚类方法,通过迭代,将

2020-09-02 19:49:26 1631

原创 分布式HBase安装

前提分布式的Zookeeper已经已经安装好分布式Hadoop集群已经安装好上传文件将官网中下载的HBase上传到linux服务器主机上解压tar -zxvf hbase-2.2.5-bin.tar.gz修改配置文件配置JAVA_HOME在解压后的HBase目录中找到/conf/hbase-env.sh文件,修改这个文件,加入JAVA_HOME。根据自己的JDK配置AVA_HOME=/soft/jdk8配置hbase-site.xml文件位置:/conf/hbase-s

2020-09-01 15:17:30 92

原创 Yarn的HA配置

前提集群上有分布式的Zookeeper。修改配置文件etc/hadoop/yarn-site.xml修改内容如下:(其中的主机名根据自己的情况修改)<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--配置yarn HA--> &l

2020-08-29 21:56:51 460

原创 结合Zookeeper的HDFS自动故障转移

前提安装了zookeeper。传送门配置了Hadoop的HA。传送门配置文件修改etc/hadoop/hdfs-site.xml添加以下内容<property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property>etc/hadoop/core-site.xml添加以下内容(主机名根据自己的情况修改

2020-08-29 19:29:59 261

原创 hadoop HA的安装配置

前提已经安装了hadoop分布式集群。修改配置文件/etc/hadoop/hdfs-site.xml增加以下的配置内容:<!--配置集群的id--> <property> <name>dfs.nameservices</name> <value>mycluster</value></property><!--配置NameNode的标识符--><property> &lt

2020-08-29 16:57:09 197

原创 Zookeeper分布式安装

软件下载Zookeeper版本一般是越新越好。注意是带bin的文件传送门上传本人使用的filezilla.exe将文件上传到虚拟机。我上传的地方是/soft文件下解压缩tar -zxvf apache-zookeeper-3.5.8.tar.gz 创建文件夹我是在apache.zookeeper-3.5.8的文件下创建一个文件夹Data。命令可以随意取,这个文件夹是Zookeeper存储数据的目录mkdir Data配置进入到apache.zookeeper-3.5.8/con

2020-08-28 19:57:19 100

原创 AdaBoost算法

主要思想Adaboost是一种提升方法。其主要思想就是改变训练样本的权重,学习多个分类器,然后将这些分类器进行线性组合,提升算法的性能。相关概念强可学习:在概率近似正确学习的框架中,一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的弱可学习:一个概念,如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,就称这个概念是若可学习的。基本思路基于这样一种思想:对于一个复杂的任务而言,将多个专家的判断进行适当的综合,所得到的判断,要

2020-08-28 14:04:07 244

原创 linux上的各种命令安装

安装ifconfigyum -y install net-tools注意要有root权限后期用到一个更新一个

2020-08-25 15:12:39 125

原创 Excel学习

窗口重排实例:在生活中,我们要比较两个多个工作表的文件。步骤:视图->新建窗口->窗口重排效果:相当于分屏操作。但是重排的是一个文件,那么修改其中一个,另外一个就会自动进行修改。交换两列将要交换的列选中,然后将鼠标移到选中列的边缘线,会出现十字箭头的符号,然后按住shift,鼠标右击,最后将其拖到要与其交换的列即可冻结单元格即:保证某些行和列的值在拉动数据表的时候不会移动选择(i,j)位置,然后点击冻结单元格(视图->冻结单元格),会冻结前i-1行和j-1列的单元格快速

2020-08-25 12:28:41 226

原创 最大熵模型

前提知识熵:其实就是定义信息的不确定程度,熵越大,信息的不确定性就越强。其实这在决策树算法中就有提到。最大熵原理:第一种定义:学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型被认为是最好的模型。第二种定义:在满足约束条件的模型集合中选择熵最大的模型。熵的定义:熵满足下列不等式:其中|x|:表示x取值的个数。在不等式中,当且仅当x满足均匀分布时,右边的等号成立。即当x服从均匀分布时,熵最大。所以:按照个人的理解来看,最大熵原理就是在给定的条件下,每种情况均匀分布是最好的。就好比

2020-08-24 15:38:07 734

原创 logistic模型

模型的关键从拟合模型到分类模型。算法前述在做线性拟合的时候知道,当我们赋予不同特征以不同的权重,然后将他们结合起来就能得到一个很好的线性拟合模型。但是这样的模型的确定却不能用于分类的任务。而要想把拟合模型拓展到分类模型上来,就是要将拟合模型中的(-INF,+INF)的值隐射到[0,1]来上。因此:提出一个事件几率的概念:事件几率:一个事件发生的概率比上该事件不发生概率的比值。如果一个事件发生的概率为ρ,那么该事件的几率就是:而事件的logit几率就是这个函数中的定义为[0,1],而其值域刚

2020-08-23 20:56:35 5725 3

原创 决策树之CART算法

前提决策树算法详解(一)连接在前面介绍的决策树算法中,其特征的取值是离散的。就比如人的性别这个属性,只分为男女两个离散的值。在这样的情况下,决策树算法就无法应用到连续值上面去。为了将前面讲到的决策树算法应用到连续值上去。那么我们能想到的一种的思想就是:根据连续值中的一个值将特征划分为两类。而这正是CART算法的核心思想。核心思想假设决策树是二叉树,内部节点特征的取值为“是”与“否”。左分支取值为“是”,右分支取值为“否”。这样决策树就等价于递归地二分每个特征,将输入空间划分为了有限个单元。回归树

2020-08-22 09:06:59 597

原创 tensorflow学习笔记(五)——网络优化

数据预处理在tf.tensorflow.preprocessing包中有数据预处理的函数,包括:image、Sequence、text。以tf.tensorflow.preprocessing.image中的ImageDataGenerator为例:tf.keras.preprocessing.image.ImageDataGenerator( featurewise_center=False, # samplewise_center=False, featurewise

2020-08-15 10:07:11 360

原创 tensorflow学习笔记(四)——keras搭建神经网络

步骤导入相关模块准备训练集和测试集在Sequential中搭建神经网络,逐层描述每层神经网络在compile中选择配置训练方法,告知优化器,损失函数,评测指标用fit函数进行训练用summary打印出网络结果和参数统计函数提要# 搭建网络结构tf.keras.models.Sequential([第一层,第二层,...,第n层])# 每一层使用什么层,可以去tf.keras.layers包中去寻找,以下举几个例子:tf.keras.layers.Flatten():平铺层tf.

2020-08-13 22:11:31 649

原创 tensorflow学习笔记(三)——神经网络的优化过程

函数引入# 条件语句为真时返回A,条件为假时返回Btf.where(条件语句,A,B)# 实例import tensorflow as tfa = tf.constant([1,2,3,1,2])b = tf.constant([2,4,5,7,1])c = tf.where(tf.greater(a,b),1,-1)print(c)# 返回一个[0,1)之间的随机数。不传维度参数,返回一个标量np.random.RandomState.rand(维度)# 实例import n

2020-08-13 12:34:25 154

原创 决策树算法详解(一)

算法思想模型优点不需要进行数据的预处理模型缺点不支持数据中有缺失变量当某些类占主导地位时,会出现偏差。因此在训练模型之前最好先平衡数据集标题

2020-08-11 18:35:27 1767 1

原创 tersorflow学习笔记(二)——鸢尾花分类

意义最基础的一个深度学习代码。代码# 利用鸢尾花数据集,实现前向传播、反向传播,可视化loss曲线# 导入所需模块import tensorflow as tffrom sklearn import datasetsfrom matplotlib import pyplot as pltimport numpy as np# 导入数据,分别为输入特征和标签x_data = datasets.load_iris().datay_data = datasets.load_iris().

2020-08-11 14:14:39 240

原创 No module named ‘win32api‘

报错No module named ‘win32api’anaconda解决方案conda install -c tokiloutok pypiwin32python解决方案pip install pypiwin32# 或者pip3 install pypiwin32

2020-08-11 08:21:09 209

原创 tensorflow学习笔记(一)

安装此处使用conda进行安装//安装英伟达的SDK10.1版本conda install cudatoolkit=10.1//安装英伟达深度学习软件包conda install cudnn=7.6//安装tensorconda install tensorflow=2.1//说明,版本号如果不是一样的可以删除,前面两个安装如果不成功就是不支持GPU。 tensor中的数据类型张量张量简单来说就是多维数组。零阶张量就是一个常数,一阶张量就是一维数组,二阶张量就是二维数组…以此

2020-08-10 22:55:02 154

原创 设计模式——状态模式

场景引入生活中,对于同一件事,根据我们当时的所处心情不同,我们会做出不一样的行为。就类似:以我观物,物皆著我之色彩。所谓的状态模式就是这样,一个类中方法根据状态的不同,而采取不一样的行为。比如:你的心情有:开心、生气。然后行为有:笑、哭。一般的实现方法就如下面的代码:public class Person { private String state; public Person(String state) { this.state = state; }

2020-08-04 15:17:28 125

原创 设计模式——模板方法

场景引入说到模板方法,最好理解的就是英语写作的模板了。在各种英文写作中,面对作文,我们都会选择去背模板。拿我们英语作文的模板来说,如果我们把每一句话都记下来的话,那么适用面肯定是很窄的。而有些人的模板就是这样:第一段:1 主语从句第二段:2.1 强调句总写引出事件的原因2.2 使用Not only…but also句式阐述具体原因第三段:3 定义从句加插入语总结全文就以上这样的一个模板,可以说,其适用面就很广。因为其比较抽象,而不是特别具体。这样每个人就能根据自己的情况和具体话题进行扩

2020-08-03 15:39:52 97

原创 设计模式——备忘录模式

场景引入所谓备忘录,简单来说就是我们在生活中为了记录一件事情而写在记事本上。所以备忘录模式就是为了保存对象的内部状态,以便在之后的操作中可以返回到这个状态。就像是Linux系统中的快照,windows系统中还原点。这个模式的出发点就是:不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。UML图originator(发起者):发起者是我们需要记住状态的对象,以便在某个时刻恢复他CareTakere(管理者):负责触发发起者的变化或触发发

2020-08-02 18:57:27 136

原创 设计模式——原型模式

场景模式在现在的工厂生产中,我们生产的产品都是大同小异的。即基本上都是相同的。在这种情况下,如果每次生产一个产品都要我们自己手动的去输入参数,相当于自己去new一个,那么就会显得很麻烦。那么我们想到的最好的办法就是用克隆的办法去从一个对象生成另一个和此对象相同的对象。原型模式就是我们说到的克隆。即根据一个对象生成一个与此对象一摸一样的对象。注:因为java中是存在实现原型模式的接口的,即Cloneable。如果有些语言没有,就是一个接口,里面有一个抽象的clone方法。但是在java中cloneable

2020-08-01 15:28:02 121

原创 设计模式——命令模式

场景引入这样一个场景:我们要吃饭,那么在家的情况下就需要我们要自己去做饭,然后才能吃到饭。但是如果我们现在在餐厅的话,我们只需要点菜就可以吃到饭。在家做饭的过程就相当于餐厅厨师做法的过程,属于执行。那么在家做法就相当于自己给自己下命令,然后自己去执行命令的过程。就是你自己告诉你自己:我要吃小龙虾,然后你自己去做小龙虾;我要吃面条,然后你要自己去做面条。但是你在餐厅就不一样,你只要说:我要吃小龙虾,你只要告诉老板,你就能吃到小龙虾;你要吃面条,你告诉老板,你也能吃到。这就相当于把请求和执行的过程进行了分开。

2020-07-31 20:53:59 81

原创 设计模式——桥接模式

场景引入假设这样一种场景:当你身边有朋友过生日时,你会去给他(她)挑选礼物。那么我们在选礼物时,肯定会根据朋友的性别来给朋友选礼物。如果朋友是女性,你就会挑选适合女生的礼物(WomenGift);如果朋友是男性,你就会挑选适合男生的礼物(ManGift)。但是具体的礼物,比如书(Book)、花(Flower)这种其实都是适合送给男生和女生的。但是女生和男生的花和书又有很大的不同。这时,就相当于构成了下图:如果按照只用继承去实现,那么就需要22=4的实现类,如果第一层的类别不断增加,比如有m种,第二层的类

2020-07-30 20:31:26 116

原创 设计模式——适配器模式

场景引入想象这样一个场景:在之前的手机上面都是有一个耳机孔的,但是现在却逐渐的取消,只有一个type接口。在这种情况下,我们需要一个type接口的转化器。在这种情况下,解决方法就有两种:1)将耳机的插口也换成type的;2)为了使之前的耳机还能使用,我们需要一个转接口。即一边是插入type接口的,一边是插入那种圆形的耳机的。解决方案二中的转接器其实就是一个适配器。其将一些老的接口进行适配从而可以满足新的接口需求。代码实现Earphone interfacepublic class Earphone

2020-07-25 22:06:31 64

原创 设计模式——建造者模式

场景在生活中,有时候存在一个很大的实体,其有很多的属性,其构造起来起来就很复杂。这时候,我们可以将这个很大的实体进行拆分,拆分很多部分进行构造。比如:在生产一辆汽车的时候,其属性就有很多。比如轮胎的材质,轮胎的大小,发动机的类型,发动的品牌,车架的材质,车架的颜色。。。。等很多属性。如果我们在生产一个汽车时,要指定这么多参数,必然十分的复杂。这时候,我们就将汽车拆着轮胎、车架、发动机等部分进行构造。然后最后再将这些部分组装起来即可。为了方便,这里的汽车构造就看成是三个部分进行组成的。分别为轮胎tyre、发

2020-07-24 20:41:43 78

原创 Spark中的window函数

摘要Window是一个窗口函数,用于将数据进行划分。生成数据val ori = Seq( ("zhang","san",56,170), ("zhang","si",60,172), ("liu","san",54,182), ("liu","wu",65,167), ("zhang","san",78,183) ).toDF("surname","name","weight","height")ori.cache()ori.show()par

2020-07-24 17:01:38 3097

原创 设计模式——访问者模式

场景引入想象这样一个生活实例:假设在每个大型商场中,有奶茶店、衣服店以及超市组成。对于这些店而言,他们都有一个浏览店铺的方法visit()方法。但是作为每一个顾客而言,店家不会根据每个具体的人来给不同的访问方式,比如:针对一个小孩子,就把店铺转化为玩具店,针对女性顾客,就把店转化为化妆品店。即店是固定的,里面的东西是固定。这时候,就需要顾客自己去店里表明自己的需求,即顾客自己要实现浏览店铺的行为,针对不同的店实现不同的行为。代码实现shop interfacepublic interface Sho

2020-07-23 18:30:08 84

原创 设计模式——迭代器模式

场景引入在数据结构中,我们知道:对于顺序存储和非顺序存储,他们遍历元素的方式是不一样的。既然遍历的方式不同,那么就有不同的迭代元素的方式。那么 如果我把迭代数据的方式抽取出来,作为一个新的类或者接口,那么针对每一种存储结构,他都应该实现这个接口,在里面实现自己迭代数据的方式。这样使我们不用去了解底层的实现原理,而可以把不同情况下的迭代看成是一样的。模式优点访问一个聚合对象的内容而无须暴露它的内部表示。遍历任务交由迭代器完成,这简化了聚合类。它支持以不同方式遍历一个聚合,甚至可以自定义迭代器的子类

2020-07-20 23:20:12 65

原创 设计模式——代理模式

场景引入由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。生活中就是:你去买电脑,不会直接去厂家进行购买,而会去专卖店或者零售店进行购买,此时专卖店或者零售店就是代理对象,他给你进行购买电脑的操作。关键代理对象中存在由被代理的对象,就好比专卖店有你要的电脑代理对象和实际对象继承相同的方法模式优点代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;代理对象可以扩展目标对象的

2020-07-18 15:34:17 107

原创 设计模式——享元模式

场景引入享元模式:所谓享元就是共享元素。因为在java语言中,生成一个新的对象其实是需要时间的。为了减少创建对象的时间,我们可以预先将需要的对象先创建出来。这样就可以减少所需要的时间。既然是先创建对象,那我们所需要的对象的数量就不能太多,否则非常的占用内存空间。因为享元模式创建出现的对象,除非主程序关闭,否则对象是一直存在的,并不会被垃圾收集机制进行收集。生活中的例子:下围棋,因为围棋只有两个颜色的棋子,我们就将可以将下围棋抽象成两个类:一个是棋子(chess)类,一个是位置(Location)类。棋子类

2020-07-16 11:25:00 108

原创 设计模式——组合模式

前提知识Linux操作系统中将文件夹当作文件进行处理。场景引入假如你现在正在使用一台linux操作系统的计算机。现在你要对你所学的知识进行整理。那么你肯定不会创建很多的文件,因为那样子太乱了。当然你也不会全部创建为文件夹,因为那样你没有办法记录自己的学习笔记。最合理的办法就是在整理的时候既有文件又有文件夹。比如下图:在这种情况下:我们就把文件和文件夹抽象成一个组件,然后这些组件组合在一起就是组合模式。观察上面的例子,可以得出:文件夹是包含若干文件的,因此在文件夹类中就有:add()、remove(

2020-07-11 18:20:48 127

原创 设计模式——观察者模式

场景引入:想象这样一个场景:你在生活中有很多的朋友,相对于其他人而言,朋友和你很强的联系的。所以,你在生活中遇到了事情,你会去告诉你的朋友。(当然那种说自己很坚强,自己默默承认的人,我就不多说了)。但是在生活中,即便是再怎么要好的朋友,他都不可能一直等着你通知他消息,因为别人也是要生活的。所以,当你自己发生了事情,应该是你来通知你的朋友。即,你有一个通知的方法sendMessage()。这样,你自己就必须要有一个朋友的列表List<Friends>。再想象一下,生活多变,一个人的朋友不会一直不

2020-07-10 18:53:21 187

空空如也

空空如也

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

TA关注的人

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