首页
留言页面
归档
友情链接
Search
1
navicat和idea的那啥方法
221 阅读
2
开始了新征途,出发
124 阅读
3
关于操蛋的四月的一些碎碎念
117 阅读
4
面试题 — 连续登录问题的简单记录
61 阅读
5
重建站的碎碎念
55 阅读
默认分类
linux
leetcode
hive
数据结构
登录
/
注册
Search
标签搜索
hive
情感
生活随感
海绵
累计撰写
29
篇文章
累计收到
6
条评论
今日撰写
0
篇文章
首页
栏目
默认分类
linux
leetcode
hive
数据结构
页面
留言页面
归档
友情链接
用户登录
登录
注册
搜索到
29
篇与
海绵
的结果
2022-05-15
开始了新征途,出发
到了人生的一个转折点了日期:2022-05-15 天气:阴 地点:广东阳春疫情下的大学18年,满怀期待地上了大学。然而,一场疫情打破了这一份美好。再加上我们的原因,四年大学,其实在学校的时间只要2年半貌似。大四一年也没有回去,大二下学期直接在家上网课了。感觉现在能有机会回去的可能就是毕业典礼或者回去匆匆忙忙拿一个毕业生了。大家各忙各的工作,相信湛江,会好起来的,而那些想见的,终会相见的。时光的河入海流,终于我们分头走。阳江到湛江西整理房间,找到了这些年求学的车票。阳江站与湛江西站的来回。其实从家去学校最好的方法其实是搭大巴,高铁其实是很麻烦的,因为还得转车下到阳江高铁站,不过还好有伴。而且高铁体验感比大巴好很多,在车上,可以看到窗外的风景,列车一站站地过。感觉就像是在享受旅途一样。高铁到站的时间还是准的,一步步地靠近学校。当然,也遇到过高铁延时。感觉自己上过学的证据,就是这些高铁票了。回顾整个大学,后想还是不够积极,貌似很多时间都在宿舍,大三下学期,我们宿舍开始外出干饭了,也就是这一个学期,才出去看了看湛江。woc,这tm一宿舍的宅男懒狗。捞来捞去的。笑了笑了。草坪音乐会操场总是承载了很多青春的回忆,毕竟学校不是很大,在校园的生活,无非就是教学楼,宿舍,饭堂了。夜晚上的操场人很多,跑跑步,走走还是很惬意的。唯独遗憾的是没有坐下来认真听一次草坪音乐会,真的很遗憾哇。这里贴上b站的视频链接,还是可以沉浸式体验一下现场的。草坪音乐会的个人空间_哔哩哔哩_bilibili一声靓仔前几天,我路过花园酒店那条路,一声靓仔叫住我了,我下意识地回头,原来是我以前一直去剪头发的那个阿姨。我记得在哪里剪了好久的头发了,高中剪到大学,后面她搬走了,我就没有再去哪里剪头发了。直到那一声靓仔,我才发现,她又在这边开了理发店。以后又可以去她哪里剪头发了。这又让我想起了在学校里面剪头发。大一刚去的时候,在尚德的隔壁有一个地方剪头发的,哪里还是收获了不少学生的好评的,我选择哪里的原因是我不注重发型这个,而且还很近的,不用出校门就可以了。后面是在教一哪里剪的。8块钱。很实在。很适合我这种无追求的人,所以后面基本都是在哪里剪头发的,哪里其实也不差,还是有一些学生去的。很多时候都得排队呢。第一次核酸疫情三年了,我昨天做了人生中的第一次核酸。体验感不是很好,在中医院做的核酸,痛失了我27块钱。在微信上操作的,竟然没有选择混检的选项,混检貌似是 6 块钱?可恶啊。而且在回来的时候,还下大雨了。直接被淋湿。要不是今天要搭火车出肇庆。。感觉还可以继续苟着。从南山科技园到肇庆国企春招 0 offer 选手,直接裂开了。肇庆这里还是同学介绍的,应该是赶上了国企信息化改革的节点了,不然也没有这么好进去。之前一起实习的两个深大实习生,回了实习的公司了。跟他们聊过,今年的春招确实难顶,他们也是没啥面试的机会。不过可惜的是好太太集团的那个,那个要是进去了,算是从基础建设搞起的那种,他们也是在做数据化转型,数据部门貌似就是3或4个人左右,所以他们招的是bi报表开发,貌似数据最基础的应用就是在报表了,当初把力扣等级困难的sql题目,基本刷了一个遍了。一些大厂的sql面试题其实也可以做出来了,麻了麻了。至于薪资方面,肯定是比不上深圳,广州这些地方了。不过你要是算上生活体验,上班时间,通勤费用,租房这些。肇庆其实也是可以接受的,毕竟肇庆这里上7小时的班,5点半下班,有宿舍,有饭堂。晚上的时间是可以自己支配的。时间是有了。后面的提升靠自己了。毕竟肇庆这里是做java,不是数据开发了。开始思考做一些有意思的事情其实在两年前,我就登记了器官捐赠这个了。志愿小时也突破了100了,在腾讯公益上捐的钱也超过了3位数了。虽然比较少。等后续转正了,就可以开启月捐了。赚钱,存钱确实要。但是现在,条件好起来了,要开始做一些有意义的事情了。月捐50,100的,对你来说,可能就是这个月的奶茶钱,但是吧,意义就不一样了。当初在深圳的时候,周末也没有怎么出去玩。当时是想存钱换个手机,换个手表,买个显示器的。每次提起这点,还是熊熊牛逼。熊熊还是可以的。貌似每个周末,马马,熊熊,阿钊他们都会去玩,去逛逛深圳。我在深圳三个月,还没逛过深圳呢。不过哥们手机换了,米11pro,配置拉满,手表换了罗西尼的机械表,显示器在家用的真香。不过这里踩雷了,机械表最好上到1500-2000吧,要想走的准一点,显示器别买23寸,可以买27的,显示器还是大点舒服,分辨率上2k的价格大概1000多能拿下,虽然23能用。想换的,想买的东西貌似去年就已经解决了,当初想换mac book pro 14寸那台的,后来发现,加多16g内存要3000块钱。加上苹果的软件环境,貌似对苹果电脑也没那么来电了。win也不是不能用啊哈哈哈哈。(终究是没钱啊)深圳确实缺了点生活体验,1500的城中村,巷子深,潮湿,偶尔跟老鼠,蟑螂打打招呼。要想住好一点公寓,在南山也不便宜,小单间确实小的离谱,一张床加一个过道,采光也不算很好。体验感确实不行,要想好一点,租房又贵,对刚出来的,没啥存款的学生,也不友好。还是一个选择。没有绝对的好坏。开始出发了下午的火车,开始收拾行李了,就写到这里吧,开始新的旅途了,希望一切安好。同时,也祝福来看我文章的你,有一份好的工作和未来。平安顺遂。生活就像海洋,只有意志坚强的人才能到达彼岸(广东高考口语,还记得吗?啊哈哈哈哈哈哈)
2022年05月15日
124 阅读
0 评论
9 点赞
2022-05-12
关于clash的使用
开源的仓库地址相关软件出处下载地址:https://github.com/Fndroid/clash_for_windows_pkghttps://github.com/Kr328/ClashForAndroidhttps://github.com/BoyceLig/Clash_Chinese_Patch相关视频教程:(需要科技)https://www.youtube.com/watch?v=V1oSmz1k29Y&ab_channel=%E7%A7%91%E6%8A%80%E5%88%86%E4%BA%AB相关的配置文档:https://docs.cfw.lbyczf.com/contents/tun.html#windows更快捷的工具在没写这个文章之前,我是一直用的是 v2 的。最近付费购买了张机票,机场方面貌似不支持了v2。没得办法开始体验了猫咪,没想到这个软件用了之后就回不去了。第一个仓库地址是猫咪的win下的客户端。虽然不是官方的仓库,但是根据这个标星数来看,还是可以的。第二个是手机下的客户端。第三个是汉化的仓库,关于怎么把软件汉化,可以看项目的readme。tun模式猫咪提供了两种代理模式,一种是普通代理,一种是模拟一个网卡实现全局的代理。我之前的需求是:对于国内的网站不走代理,然后对于国外的走代理加速,虽然可以使用v2设置绕过大陆的模式,但是在部分网站打开仍然可以感觉到了卡顿,但是用了猫咪之后,感觉很是丝滑。毕竟现在对这个已经重度依赖了。如何设置:服务模式中安装好网卡驱动(地球会变绿色的),这时候会在win设置里面的网络适配器中虚拟出一个网卡的。然后就是开启tun模式。开了这个模式就需要把系统代理这个模式关掉。用下面的方式修改配置文件,去掉原有的dns配置。dns: enable: true enhanced-mode: fake-ip nameserver: - 8.8.8.8 # 真实请求DNS,可多设置几个 - 114.114.114.114 # interface-name: WLAN # 出口网卡名称,或者使用下方的自动检测 tun: enable: true stack: gvisor # 使用 system 需要 Clash Premium 2021.05.08 及更高版本 dns-hijack: - 198.18.0.2:53 # 请勿更改 auto-route: true auto-detect-interface: true # 自动检测出口网卡关于配置文件的修改在最新的版本里面,直接编辑配置文件,但是如果你刷新了,这个配置文件就会被重置了。修改配置文件,应该要打开合并,初始化一个配置文件,然后进去编辑修改合并模式。修改右边边框的文件。然后后面刷新的时候,就会自动合并上你修改的内容了。
2022年05月12日
20 阅读
0 评论
0 点赞
2022-05-05
面试题 — 连续登录问题的简单记录
面试题 — 连续登录问题的简单记录连续问题,可谓是常见的面试题目了。对于连续登录天数这类问题,明白了开窗的作用,基本上是手到擒来。求最大登陆天数====>直接做差值分组思路:对每一行的数据进行编号排序,使用表中的时间列做一个 date_sub 的操作,倘若是连续的,则 date_sub 后的时间是一样的。然后做一个 group by 的操作,count 一下条数,然后取 max 即可获得最大值。1001 2017-01-01 2016-12-31 1001 2017-01-02 2016-12-31 1001 2017-01-04 2017-01-01 1001 2017-01-05 2017-01-01 1001 2017-01-06 2017-01-01 1001 2017-01-07 2017-01-01 with a as ( SELECT * , DATE_SUB(login_date,INTERVAL ROW_NUMBER() over (partition by user_id order by login_date) DAY) as row_date FROM login_log ) , b as ( select user_id , row_date, count(row_date) as count_date from a group by user_id , row_date ) select user_id , max(count_date) from b group by user_id 求连续登录天数的进阶版====>取上一条判断目前的需求变成了,只要时间差距在两天内,仍然算连续登录。上面的方法已经不在使用了。做差的这个方法成立是需要时间是严格到每天的。但是中间出现间隔,这种情况已经不适用了。对比一下上面的,这种情况减出来的已经不一样了。我们的题目的意思是:只要时间差距在两天内,仍然算连续登录。。。按道理这里的数据应该都是被是为连续的。id date date_sub(date-rank_num) 1001 2017-01-01 2016-12-31 1001 2017-01-02 2016-12-31 1001 2017-01-04 2017-01-01 1001 2017-01-06 2017-01-02 1001 2017-01-08 2017-01-03 1001 2017-01-10 2017-01-04 SELECT * , lag(login_date , 1 , login_date) over (partition by user_id) as lag_date , DATEDIFF(login_date,lag(login_date , 1 , login_date) over (partition by user_id)) as diff_num FROM login_log -- 上面的sql是一个取上一条的一个开窗函数,以及一个 datediff 去判断两个时间的差值。 id date lag_date date_sub(date,lag_date) 1001 2017-01-01 2017-01-01 0 1001 2017-01-02 2017-01-01 1 1001 2017-01-06 2017-01-02 4 1001 2017-01-08 2017-01-06 2 1001 2017-01-12 2017-01-08 4 1001 2017-01-13 2017-01-12 1 1001 2017-01-15 2017-01-13 2 1001 2017-01-16 2017-01-15 1 从date的时间列去看,符合题意是有三个连续的登录时间的。我们现在要做的就是 根据date_sub 这一列的数据去做分组。如何分区:结合题意,只要时间差距在两天内,仍然算连续登录。这里判断肯定是用到了 if 去做判断,如果用到了 if 做判断,我们可以思维惯性地使用 sum 去累加做分组。这可以总结一下:什么时候会用到 sum去做分组?第一点:用到了 if 做判断的。第二点:跟上下行关系大的。看上图,我们就完成了分组了。。慢慢体会吧。求连续问题的另一种解法====>两次排序分组b站上面有一个讲解的视频:点击可到达。SQL面试题:基于扫码记录查找密接人员_哔哩哔哩_bilibilisql的建表语句:-- 创建示例表和数据 CREATE TABLE trail( uid varchar(11) NOT NULL, area varchar(10) NOT NULL, scan_time timestamp); INSERT INTO trail VALUES ('13011111111', 'A001', '2022-05-01 09:00:00'); INSERT INTO trail VALUES ('13011111111', 'A001', '2022-05-01 10:00:00'); INSERT INTO trail VALUES ('13011111111', 'A001', '2022-05-01 11:00:00'); INSERT INTO trail VALUES ('13011111111', 'A002', '2022-05-01 11:05:00'); INSERT INTO trail VALUES ('13011111111', 'A002', '2022-05-01 13:00:00'); INSERT INTO trail VALUES ('13011111111', 'A001', '2022-05-01 13:15:00'); INSERT INTO trail VALUES ('13011111111', 'A001', '2022-05-01 14:00:00'); INSERT INTO trail VALUES ('13022222222', 'A001', '2022-05-01 10:30:00'); INSERT INTO trail VALUES ('13022222222', 'A001', '2022-05-01 12:00:00'); INSERT INTO trail VALUES ('13033333333', 'A001', '2022-05-01 11:00:00'); INSERT INTO trail VALUES ('13033333333', 'A001', '2022-05-01 12:00:00'); INSERT INTO trail VALUES ('13033333333', 'A001', '2022-05-01 13:00:00');- 问题一:如何找出用户在每个区域的停留开始时间和结束时间?可以看我着两个案例,都可以实现分组的问题,读者可以尝试一下自己创建表,写一下这个案例。
2022年05月05日
61 阅读
0 评论
2 点赞
2022-05-04
hive清空外部表
hive清空外部表删除的注意点:hive的外部表,删除了,但是hdfs上的文件并不会删除,倘若再次创建表的时候,第二次创建表仍然会指向同一个目录,这样的话,使用load data加载数据就会把之前的文件数据也会加载到表上。truncate清空表truncate 这个指令只适合用在内部表上,在外部表上并不适用。清空外部表的方式清空表有三种方式,这里只介绍一种。先转成内部表,然后在使用清空表的操作。alter table ods_hot_band set TBLPROPERTIES('EXTERNAL'='false');
2022年05月04日
14 阅读
0 评论
0 点赞
2022-05-04
hive中的四个排序
hive中的四个排序order by (全局排序)全局排序,只有一个 reducer。默认升序。此处采用的排序办法是归并排序。这里注意一点,在严格模式中,order by 语句后面必须跟着一个 limit 的字句。如何开启严格模式开启严格模式是有利的。在对分区表的查询的时候,必须用有分区的条件order by 的时候必须带上 limit禁止笛卡尔织的产生,join的时候必须有on的条件# 查询严格模式,如果是is undefined 说明严格模式没有开启。默认是没开启的。 set hive.mapred.mode; # 开启严格模式 set hive.mapred.mode=strict; # 关闭严格模式 set hive.mapred.mode=undefined;位置编号代替列名什么是位置编号代替列名呢?这一点很鸡肋,而且不建议写这么捞的东西。select * from ads_total_read where dt = '2022-02-21' order by 2 desc上面的 2 就是位置编号了,对应第二列的意思。这种写法可读性实在是不行,但是这种学法,但是官网记录了一下一个点。排序中的空值处理在排序的过程中,对于空值的处理,在升序和降序之间的处理逻辑也不相同。好比如默认的升序排序中,空值会排在最前面,但是在降序的过程中,空值会在排序的最后面。升序排序 ====》 空值最前面降序排序 ====》 空值最后面sort by (局部排序)对于大规模的数据集 order by 的效率非常低,在很多情况下,并不需要全局排序。此时可以使用 sort by。每个 reducer 生成一个排序文件,sort by 只保证每个 reducer 的输出有序,只能保证局部是有序的,对全局结果集来说不是排序的。一般场景下不单独使用。关于分区的规则:使用 sort by 时,通常会跟 distribute by字段一起连用,通过 distribute by 来指定分区规则。当不指定分区规则时(只使用sort by ),则使用默认的内部算法进行分区。distribute by (分区排序)distribute by 是用来指定分区规则的,如果单独使用 sort by。因为没有分区的规则,所以 sort by 会用内部的随机算法进行分区,但是如果有 distribute by ,会根据这个划分分区。如果还想要排序,那就结合 sort by 即可。distribute by 是用来控制 map 的输出,在 reduce 是如何划分的。一般情况下会跟 sort by 起来使用。而且sort by 要跟在 distribute by 一起使用。关于分区的规则:根据 key 的哈希值取模来划分的。相同的key值会划分到同一个reduce。cluster by (簇排序)Cluster By是 Distribute By 和 Sort By 的结合体。当两者相同的时候,可以使用,但是有一点就是:不能指定排序的规则,只能做一个升序的。参考文档Sort By、Distribute By 使用说明书_扛麻袋的少年的博客-CSDN博客
2022年05月04日
9 阅读
0 评论
0 点赞
1
2
...
6