自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode刷题-字符串详细总结(Java)

可以首先对。

2024-04-09 22:51:00 972

原创 Leetcode刷题-哈希表详细总结(Java)

当我们想使⽤哈希法来解决问题的时候,我们⼀般会选择如下三种数据结构。当我们遇到了要快速判断⼀个元素是否出现集合⾥的时候,就要考虑哈希法。如果在做⾯试题⽬的时候遇到需要判断⼀个元素是否出现过的场景也应该第⼀时间想到哈希法!这一部分的题就是需要注意,

2024-04-07 19:18:58 1028

原创 Leetcode链表刷题总结(Java版)

因为如果只有一个节点的情况,删除后,就没有head,就知识null了,所以不能返回head。

2024-04-05 16:48:13 1003

原创 Leetcode刷题-数组(二分法、双指针法、窗口滑动)

需要注意区间的问题。首先在最外面的循环判断条件是left<=right。那就说明我们区间规定的范围就是【left,right】属于是!!!!!!那之后在判断target和我们数组中的num [ mid ] 大小关系之后,再重新调整right,以及left的时候,应该是left = mid + 1,right = mid - 1。

2024-04-03 21:05:22 1167

原创 详细总结前中后序、层次遍历二叉树(非递归方法)

之前一直学的是用递归方法进行前中后序三种遍历方法,没想到用非递归方法也还是挺舒服的,对了解树结构的应用也很有帮助。

2024-04-02 10:04:38 771

原创 链表常见题型分析及代码汇总

*1)哈希表set:**将所有节点放进set中,每放进去一个节点都查查这个节点是不是在集合中,第一次查到这个节点在集合中的时候,就说明这个节点就是环的起点。放入HashMap的东西,如果不是基础类型,就按照引用传递,内存占用就是这个东西的内存地址大小,存放的相当于是这个数据类型的地址。此后就到了本方法的骚气处了【这是规律!放入HashMap的东西,如果是基础类型,就按照值传递,内存占用就是这个东西的大小。然后key存放的是目标链表中的节点,value放的是复制的新链表【新new出来的】

2024-03-31 23:21:27 1283

原创 排序算法超详细代码和知识点整理(java版)

【其实就是不停的把元素往后堆,数组剩余长度越来越少,直到堆到最后一个,数组都堆好排好序了】

2024-03-30 18:40:50 1093

原创 python超详细知识点汇总整理

放进函数中去,应该在列表名字前面加上号,比如a(*list)形式参数名字:这次不是放在元组了,是放在字典里python在定义全局变量的时候,这个变量只要在函数外面定义的,就是全局变量,在函数体中也可以访问到当局部变量(函数体内定义的变量)和全局变量重名时候,对函数体的变量进行赋值后,不影响函数体的变量在函数体内变量用global关键字修饰后,该变量也变成了为全局变量。

2024-03-29 14:45:02 1946

原创 Spark基础必会知识总结

RDD是弹性分布式数据集存储弹性:内存磁盘一起用计算弹性:重试机制分片弹性:分区可以改变容错弹性:可以基于血缘关系,也就是上一个RDD重新进行计算,恢复当前RDD的数据reduceByKey:有预聚合、重分区,聚合计算groupByKey:没有预聚合,重分区但是不计算血缘说的就是宽依赖和窄依赖。有shuffle的是宽依赖宽依赖:父RDD 的一个分区的数据会被子 RDD 的多个分区依赖,涉及到 Shuffle窄依赖:父RDD 的一个分区的数据只会被子 RDD 的一个分区依赖窄依赖的多个分区可以并行计算;宽依赖

2024-03-27 14:58:24 691

原创 MySQL事务总结

​ 事务中包含的操作要么都做,要么都不做【比如更新表中100条数据,更新了20条出问题了,那这20个数据要回滚到没有更新的状态】​ 事务的执行结果必须是使数据库从一个一致性状态变到另一个一致性状态,不会一部分执行成功,一部分事务并未执行成功【read view(记录多个事务在修改数据的时候事务之间的可见性,可以看到哪些事务中的数据。​ 一个事务多次读取同一条记录,返回的结果是一致的(解决了不可重复度)​ 一个事务可以读取另一个事务未提交的数据。​ 一个事务只能读取另一个事务提交的数据(解决了脏读)

2024-03-26 10:31:08 597

原创 MySQL序列最全知识点总结:B+树、索引类型、索引结构、存储引擎

​ 黄色的序列表示的是这个需要记录的表中实际索引,从根节点开始,他相邻的两个节点都是“一段索引的最开始”,相当于如果我想找表中索引1-320之间的数据,我就需要去下一层的页30去找,同此思路,继续向下查找,直到叶子节点。​ InnoDB是聚簇索引,默认是主键,主键索引B+树的叶子节点存储的是行数据,辅助索引B+树的叶子节点存储的是索引值和主键值(也就是指向行数据的指针),通过这个主键值二次查找,去主键索引B+树种找对应的行数据。并且hash结构的索引是无序的,会比较慢,而B+树是有序的。

2024-03-25 21:07:53 737

原创 Hive SQL必刷练习题:复购率问题(*****)

去看90天内“某商品复购率 = 近90天内购买它至少两次的人数 ÷ 购买它的总人数”截至最后一天位置,也就是“今天“,表中的最新的一天。首先分析两个度量值,

2024-03-24 16:32:06 456

原创 Hive SQL必刷练习题:排列组合问题【通过join不等式】

方法1:可以直接通过join,最后on是一个不等式【排列组合问题的解决方式】– 先通过高级聚合函数 开窗 将当前行的值到最后一行的队伍名封装到一个集合中。– 然后将集合再炸裂开 并将两个队伍名字相同的行过滤掉即可得出想要的结果。​ 也还有种思路,我就是想这样,不过没成功,就是通过炸裂函数+开窗。– 通过理解题意 明白了每个队伍只比一次其实就是一个数学的关联问题。– 所以就想到了使用开窗函数和高级聚合函数和炸裂函数。方法2:也可以是提前多加一列,加上一个序号。这种问题,就是数学的排列不等式,

2024-03-23 14:39:38 690

原创 Hive SQL必刷练习题:同一个会话划分问题(*****)

​ 关键在于,找到开始不属于上一个会话,或者说不属于上一个组的那个时间点,所以就需要对每一行进行判断,如果他和上一个时间点还是属于同一组的,那就标记一个值,如果不是同一个组了,就需要标记一个明显可以区分开的值。之后我如果把这个标记累加起来【从最早之前到现在】,你可以发现是一个会话的,就是1,之后就会累加成2。​ 判断同一个用户,如果连续访问的时间间隔小于60s,就认为是同一个会话,或者说划分到同一个组。如果这个时间差值小于60,我给标记一个1,大于60标记一个0。

2024-03-22 13:12:43 384 1

原创 Hive SQL必刷练习题:留存率问题(*****)

其实这类问题的关键在于,你要想办法将每个用户的最初登录时间和第二天登录时间这两个信息,放到一行中。这就是先求出来初次登陆时间后,然后借助这个表进行left join,之后再此基础上以最初登录时间进行分组group by,再用聚合函数即可。但是还有一种思路,就是直接进行开窗排序,然后用row_number排序,找到前两名的日期,这个用where筛选,并且在查询条件里面用max,和min聚合函数可以找到首日和第二日,第一个日期就是首日,第二个就是第二次登录日期,只要看这个第二次登录日期是不是首日的第二天就行。

2024-03-21 23:20:02 1251 1

原创 Hive SQL必刷练习题:日期交叉问题(两种思路)

了。

2024-03-20 22:32:57 558 1

原创 Hive SQL必刷练习题:向用户推荐朋友收藏的商品(两种思路)

​ 首先明确,这个好友关系表,是互为好友,所以也就是说如果想要找到所有用户的每一个人的所有朋友,需要看用户1 id的朋友 + 用户2 id的朋友。

2024-03-19 11:44:32 880

原创 Hive SQL必刷练习题:连续问题 & 间断连续(*****)

​ 所以总的来说,要么就是用开窗函数对日期进行排序,然后当前日期减去排序序号,去看日期一样的就是连续操作的记录​ 当然,如果想用统计间断连续的方法去看连续n天的问题,也可以,就是取一个lag(),或者取一个lead(),进行开窗,不用加标记,直接一个where过滤diff=2,这就是统计连续3天的用户,不过同一个用户可能会有多个这个符合条件的,最后需要去重count(distinct(user_id))。如果是为了找到连续3天登录过的用户。

2024-03-18 22:40:29 1196

原创 Hive SQL必刷练习题:同时在线人数问题(*****)

​ 可以借助union all,不能是union all,因为进来可能时间一样,直播间id一样,但是不能去重,毕竟进来一个就会算作一个人。2、 另外就是union的使用,两个表union的时候,是按照上面那个表的列名字去用作。最终表的列名字,并且两个表的列的个数,每一列的属性类型都要一一对应。​ 因为有进直播间时间,和出直播间人数。1、 这个题的解决思路,用数字代表计算人数,最后统计数字。​ 所以可以给进直播间的时间。

2024-03-17 09:43:27 475 1

原创 最详细数据仓库项目实现:从0到1的电商数仓建设(数仓部分)

其中业务总线矩阵,就像是一个分析的笔记.后面还会有各个属性值和度量值的统计等// 见讲义中第四个讲义数仓的第5章。

2024-03-16 17:10:28 3234 2

原创 最详细数据仓库项目实现:从0到1的电商数仓建设(采集部分)

行为数据(行为日志)业务数据(MySQL)这两类数据,都是通过模拟数据的程序生成,通过脚本文件执行lg.sh,模拟生成行为日志数据和业务数据。日志数据生成后直接写入/opt/module/applog/log目录下,而业务数据是在下载配置好MySQL后创建名为gmall的数据库,直接将业务数据通过jdbc远程连接,写入数据库中对应的表中。

2024-03-15 09:26:27 2216 1

原创 Git详细入门笔记

在之前的操作中,所有的操作都是基于一条主线完成的。但是我们无法保证每一次的修改和变更都是正确并有效的,往往有的时候需要追溯历史操作,而版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。从上面的描述上看,就会显得非常繁琐,而且本质上并没有太重要的内容,仅仅是因为环境上的变化,就需要重新修改,所以如果将本地测试环境和服务器测试环境区分开,分别进行文件版本维护,是不是就会显得更合理一些。

2024-03-14 10:56:34 926 1

原创 Hive企业级调优

计算资源调优就是yarn资源的配置,和mapreduce的资源配置,分给多少内存,核数之类的一个sql语句翻译成几个mapreduce ,map和reduce分别干了什么,就是执行计划讲解的这个是通过在select语句最外面加上explain关键字,就会显示出来详细的执行计划而执行计划是由一系列的stage,就是一页一页的构成,每一个stage对应一个mapreduce job 或者一个文件操作系统,比如load之类的0- 补充一个可视化执行计划方法在hive文件夹中有一个压缩包名为dist,是可以

2024-03-13 09:28:18 1397

原创 最详Hive入门指南

基于Hadoop的⼀个数据仓库⼯具,可以将结构化的数据⽂件映射 为⼀张表,并提供类SQL查询功能。本质就是一个hadoop的客户端,将HIve SQL转化成MapReduce程序如果不指定地址,那么就是默认地址下的自己构建的表名字,在此默认路径下创建了这么一个表的目录然后我们只要和表中对应数据格式一样的数据传到hdfs下的表目录下,就可以将数据存储到表中了。

2024-03-12 09:47:13 1542 1

原创 Kafka总结文档

/主要见讲义第21-23页1、定义类实现 Partitioner 接口。2、重写 partition()方法。代码中实际完成的就是重写partition方法中的几个步骤:获取消息,将参数的value值变成tostring然后根据需求,去分析value,然后返回不同情况返回不同的partition值最后将这个类的全类名,放在生产者的代码中,添加一个参数// 添加自定义分区器。

2024-03-11 13:17:35 1477 2

原创 Flume总结文档

自定义拦截器,在工作中会用到的比较多,比自定义source和自定义sink用的要多因为基本数据的类型已经定义的比较全面了主要是根据业务逻辑对数据进行处理,就是拦截器Interceptor的作用了// 主要是在讲义的第26-30页多路复用Multiplexing会用到拦截器,就是在channel选择器中告诉这个机器哪些数据应该发往哪些channel其实就是对event的头信息和body信息进行修改和处理其实主要涉及四个方法和最后的builder构建。

2024-03-10 09:28:20 965 1

原创 Zookeeper笔记

/ 主要见讲义的前4页 主要是:统一命名服务、统一配置管理、统一集群管理、服务器动态上下线、软负载均衡。

2024-03-09 15:28:09 1034 1

原创 Hadoop汇总

(1)默认使用的实现类是:TextInputFormat(2)TextInputFormat的功能逻辑是:一次读一行文本,然后将该行的起始偏移量作为key,行内容作为value返回。(3)CombineTextInputFormat可以把多个小文件合并成一个切片处理,提高处理效率。// 1. 创建配置文件// 2. 判断是否有tool接口//这里是判断集群中的命令行第一个参数是什么,如果是yarn命令, //就执行上面定义的方法break;

2024-03-08 11:11:48 1228 1

原创 JAVA学习笔记

java是混合型:编译+解释型,先java文件编译成class文件,而且不是直接运行在操作系统里面,而是运行在虚拟机里面的,只要针对不同的操作系统给出不同的虚拟机(jvm)就行jvm虚拟机核心类库开发工具:javac编译工具,Java运行工具,jdb调试工具,jhat内存分析工具…jvm虚拟机核心类库运行工具:这里是运行不是开发,jdk是开发的,就是已经有class,直接运行就行,不需要编写代码的时候匿名内部类:是内部类的简化写法。他是一个隐含了名字的内部类。

2024-03-07 09:29:32 940 1

原创 Linux笔记

也有简单一些的方法,就是借助工具​ 通常在工作过程中,公司中使用的真实服务器或者是云服务器,都不允许除运维人员之外的员工直接接触,因此就需要通过远程登录的方式来操作。所以,远程登录工具就是必不可缺的,目前,比较主流的有 Xshell, SSH Secure Shell, SecureCRT,FinalShell 等,同学们可以根据自己的习惯自行选择.然后配置里面的用户身份,就是虚拟机的用户名和密码想断开连接就直接点击上面创建按钮旁边的断开连接。

2024-03-06 09:28:56 1408 1

原创 STL基础

STL是一些容器的集合,也是算法和其他一些组件的集合 ,algorithm(头文件)是对容器继承的一些算法函数,辅助刷算法题 万能头文件:#include<bits/stdc++.h>排序 还是用sort , 第三个参数为比较器,不写默认为less() 默认的排序方法是从小到大,加上greater<数据类型>(),就变成从大到小。构造和和前面几种容器的用法一致,输出队首元素类似动态数组vector用到了front(),进队出队用到了类似栈的push()和pop()

2024-03-06 09:20:20 845 1

原创 pytorch学习笔记

定义具有参数的层, 这些参数可以通过训练进行调整。我们可以使用内置函数来创建参数,这些函数提供一些基本的管理功能。比如管理访问、初始化、共享、保存和加载模型参数。这样做的好处之一是:我们不需要为每个自定义层编写自定义的序列化程序。现在,让我们实现自定义版本的全连接层。回想一下该层需要两个参数,一个用于表示权重另一个用于表示偏置项。在此实现中,我们使用修正线性单元作为激活函数。in_units和units,分别表示输入数和输出数。

2024-03-05 12:59:33 886

空空如也

空空如也

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

TA关注的人

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