当前位置: 首页 > news >正文

地铁大数据客流分析系统 设计与实现 计算机竞赛

文章目录

  • 1 前言
    • 1.1 实现目的
  • 2 数据集
    • 2.2 数据集概况
    • 2.3 数据字段
  • 3 实现效果
    • 3.1 地铁数据整体概况
    • 3.2 平均指标
    • 3.3 地铁2018年9月开通运营的线路
    • 3.4 客流量相关统计
      • 3.4.1 线路客流量排行
      • 3.4.2 站点客流量排行
      • 3.4.3 入站客流排行
      • 3.4.4 整体客流随时间变化趋势
      • 3.4.5 不同线路客流随时间变化
      • 3.4.6 不同线路的客流组成
    • 3.5 收入消费指标统计
      • 3.5.1 线路收入排行
      • 3.5.2 各个站点对线路收入的贡献
      • 3.5.3 不同消费金额次数占比
    • 3.6 完整乘车记录中客流统计
      • 3.6.1 数据过滤
      • 3.6.2 不同乘车区间客流量排行
      • 3.6.3 不同线路区间客流排行
    • 3.7 实时计算
      • 3.7.1 将站点客流数据写入 Hbase 中
      • 3.7.2 按照不同的业务场景从Hbase中读取数据
  • 4 最后

1 前言

🔥 优质竞赛项目系列,今天要分享的是

地铁大数据客流分析系统

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

1.1 实现目的

使用 Flink 完成数据清洗和聚合,使用 Elasticsearch + Kibana
的的技术路线,完成了客流信息,地铁收入、乘客车费、乘车区间和乘车时间的查询和可视化。

在此基础上,还使用 Flink 实现了计算各线路、站点和乘车区间的客流信息等实时计算功能,并将实时计算的结果写入到Hbase中,供下游业务查询使用。

2 数据集

2.2 数据集概况

  1. 数据集共用 1337000 条信息,其中包括 447708 条巴士的乘车信息和 781472 条地铁的出入站信息。巴士数据和地铁数据存在明显的不同:
  • 乘坐巴士只需要上车的时候刷卡,因此一条记录就是一次乘车记录
  • 而地铁在进出站时均需要刷卡,因此需要同时拥有一张交通卡的进出站记录才能构成一条完整的乘车记录
  1. 由于巴士的乘车记录比较简单,所有本项目中主要针对地铁的乘车记录进行计算和分析
  2. 地铁部分数据集的日期是北京时间 2018-09-01 05:00 ~ 2018-09-01-11:35

2.3 数据字段

在这里插入图片描述

3 实现效果

3.1 地铁数据整体概况

本项目只针对地铁的乘车记录进行分析,下面对数据集的整体概况做介绍,如图 1 所示,当日(2018-09-01 05:00 ~
2018-09-01-11:35)共计有 8 条线路的 170 个站点完成了 781472 人次的出入站,其中入站 415741 人次、出站 365731
人次,实际营业收入 1426697.15 元。因为不是一个完整的运营日所以出入站乘客人次并不相等。

在这里插入图片描述

3.2 平均指标

在这里插入图片描述

3.3 地铁2018年9月开通运营的线路

2018年9月该地区地铁共计有8条线路投入运行,分别是1号线、2号线、3号线、4号线、5号线、7号线、9号线、11号线,其具体线路图入下所示。

在这里插入图片描述

在这里插入图片描述

3.4 客流量相关统计

有关使用 Elasticsearch + Kibana实现数据可视化的具体细节。

3.4.1 线路客流量排行

如图所示是线路的客流排行榜,其中蓝色是入站客流,绿色是出站客流,根据图中信息可得到:

  • 总客流排名:5 号线、3 号线、1 号线、4 号线、2 号线、7 号线、11 号线、9 号线

  • 入站客流排名:5 号线、3 号线、1 号线、4 号线、7 号线、11 号线、9 号线、2 号线

  • 出站客流排名:1 号线、5 号线、3 号线、2 号线、4 号线、7 号线、11 号线、9 号线

在这里插入图片描述

3.4.2 站点客流量排行

总客流量的排行

从图站点总客流排行可以看出,五和、布吉站(深圳东火车站)、罗湖站(深圳火车站)、深圳北(深圳北高铁站)和民治分列前五,其中五和、布吉和民治入站客流明显多于出站客流,而罗湖站和深圳北则完全相反,这些车站基本都是不同线路的换乘车站。

在这里插入图片描述

3.4.3 入站客流排行

对于入站客流,五和、布吉(深圳东火车站)、丹竹头、民治和龙华分列前五

在这里插入图片描述

3.4.4 整体客流随时间变化趋势

从图 中可以看出,出入站客流随时间变化都出现了明显的高峰,但是具体来说又存在不同:

  • 入站客流的高峰在 08:30 附近,早于出站客流高峰的 08:45 附近
  • 在 08:37 之前入站的客流都是多于出站客流
  • 出站客流在 08:35-08:55 出现了大幅增加,这也与大部分公司固定的 9 点上班相吻合。
  • 整体来说入站客流的波动性没有出站客流那么剧烈,因为入站客流相对于地铁到站瞬间大量出站乘客来说相对更平稳没有那么明显的波峰出现。

在这里插入图片描述

3.4.5 不同线路客流随时间变化

由于图表篇幅的限制只显示客流量前四的线路。从图 2.8 中可以看出 地铁 5 号线、地铁 3 号线、地铁 1 号线在不同时间段客流量的变化较大,尤其是是 5
号线早高峰十分明显,由此推测人们的工作地点多集中在 5 号线附近,从客流量也可以佐证这个观点。

在这里插入图片描述

3.4.6 不同线路的客流组成

以客流量最多的五号线为例,从图 2.9 可以看出五和、深圳北、民治三个站点的客流分别占全线客流的 9.53 9.53% 9.53、 7.96 7.96%
7.96、 7.24 7.24% 7.24,同时这三个站的客流量也排名所以站点客流的第一、第四和第五位,右侧图例从上到下客流量依次减少。

在这里插入图片描述

3.5 收入消费指标统计

3.5.1 线路收入排行

从图 可以看出,虽然 1 号线的客流量只能排在 5 号线和 3 号线之后屈居第三,但是其线路的收入却排名第一。而客流量第四的 4 号线其收入只能排在第六位。

在这里插入图片描述

3.5.2 各个站点对线路收入的贡献

以收入最多的地铁 1 号线为例,罗湖站、会展中心站和桃园站对全线的收入贡献分列前三,而前海湾则是全线副班长贡献最少。右侧图例从上到下对线路收入贡献依次减少。

在这里插入图片描述

3.5.3 不同消费金额次数占比

从图中可以看出、实际消费金额为 2.85、1.9、4.75、3.8和5.7排名总消费次数的前五。

值得注意的是消费金额为0在总消费次数中的占比为 2.13 2.13%
2.13,这个一方面是深圳地铁确实对部分人群免费乘坐,另外一部分是有内部员工卡产生的。

在这里插入图片描述

3.6 完整乘车记录中客流统计

3.6.1 数据过滤

数据中存在大量的数据不能构成完整的情况,如

  • 对于一张卡只有入站或车站单条记录的显然不能构成一条完整的行程记录
  • 对于入站点和出现点相同的情况显然是不合理的数据,同样不能构成一条合理行程记录
  • 对于入站时间在 06:00 之前的记录同样不计算在内,因为深圳地铁的所有线路平均首班车时间在06:20左右,所以猜测可站点对外开放时间不会早于6:00。
  • 对于按照时间排序之后同一张卡出现,连续两次均为入站或出站的视为不合法数据

入站时间早于06:00和入站点出站点相同的数据

深圳地铁的运营时间都是 6 点以后,所以之前的数据记录,均有内部工作人员活所产生,视为无效数据如卡号为 HHJJAFGAH 的用户在同一条线路的同一站点产生的这 6 条数据,从实际消费金额为 0.0 也可以佐证此推论1535752434000,HHJJAFGAH,0.0,0.0,地铁入站,地铁二号线,0,大剧院,AGM-109,260036109  2018/9/1 5:53:541535752629000,HHJJAFGAH,2.0,0.0,地铁出站,地铁二号线,0,大剧院,AGM-117,260036117  2018/9/1 5:57:91535754065000,HHJJAFGAH,0.0,0.0,地铁入站,地铁二号线,0,大剧院,AGM-109,260036109  2018/9/1 6:21:51535754386000,HHJJAFGAH,2.0,0.0,地铁出站,地铁二号线,0,大剧院,AGM-117,260036117  2018/9/1 6:26:261535758541000,HHJJAFGAH,0.0,0.0,地铁入站,地铁二号线,0,大剧院,AGM-113,2600361131535758687000,HHJJAFGAH,2.0,0.0,地铁出站,地铁二号线,0,大剧院,AGM-105,260036105随然该持卡人极可能是内部用户,但是下面这条数据将被作为有效数据,因为乘车事件是真实发生的从大剧院 -> 晒布1535766418000,HHJJAFGAH,0.0,0.0,地铁入站,地铁二号线,0,大剧院,AGM-117,260036117  2018/9/1 9:46:581535767398000,HHJJAFGAH,2.0,0.0,地铁出站,地铁三号线,0,晒布,AGM-105,261013105    2018/9/1 10:3:18连续两次均为入站的数据1535755820000,CBCGDHCBB,0.0,0.0,地铁入站,地铁五号线,0,太安,AGT-118,2630351181535759424000,CBCGDHCBB,0.0,0.0,地铁入站,地铁四号线,0,清湖,AGM-105,2620111051535759862000,CBCGDHCBB,2.0,1.9,地铁出站,地铁四号线,0,清湖,AGM-108,2620111081535756340000,HHACJJFHE,0.0,0.0,地铁入站,地铁四号线,0,莲花北,AGM-109,2620201091535756926000,HHACJJFHE,0.0,0.0,地铁入站,地铁四号线,0,上梅林,AGM-110,2620191101535757664000,HHACJJFHE,2.0,0.0,地铁出站,地铁四号线,0,上梅林,AGM-104,2620191041535758092000,HHACJJFHE,0.0,0.0,地铁入站,地铁四号线,0,上梅林,AGM-110,2620191101535758342000,HHACJJFHE,2.0,0.0,地铁出站,地铁四号线,0,莲花北,AGM-107,262020107

经过以上指标过滤之后得到能够构成完整且合理的出入站记录 572156 条,每两条记录组成一条完整的行程记录 ,因此有 286078
条合法行程记录,其中包含了入站和出站的时间、线路、站点、刷卡设备等,还能计算出单次乘车所用时间。

3.6.2 不同乘车区间客流量排行

排名前三的乘车区间是:赤尾 —> 华强北,福民福田 —> 口岸、五和 —> 深圳北

在这里插入图片描述

3.6.3 不同线路区间客流排行

在这里插入图片描述
从图可以看出,5 号线直达,3 号线直达和 1 号线直达的客流最多。

3.7 实时计算

通过Flink可以实时计算过去的某个时间段内,个站点的出入站客流量以及总客流量,不同站点区间的客流量,以及不同线路区间的客流量等指标。

对于实时计算的结果可以使用 Redis 或者 Hbase 来进行存储,对于两者的技术特点对比如下:

  • Redis作为纯内存NoSQL虽然读写性能十分优秀,但其支持的数据量通常受内存限制,而HBase没有这个限制,可以存储远超内存大小的数据
  • HBase采用WAL,先记录日志再写入数据,理论上不会丢失数据。而Redis采用的是异步复制数据,在failover时可能会丢失数据
  • 客流信息作为基本不需要再次变动已经固化, 非常适合使用 HBase 来存储。

综上本项目中使用 Hbase 来存储实时计算的数据结果。

3.7.1 将站点客流数据写入 Hbase 中

  1. 首先在 Hbase shell 中使用以下命令建立存储表


create ‘StationTraffic’, {NAME => ‘traffic’}

  1. 执行 com.ngt.traffic.HBaseWriterStationTraffic 将站点的客流信息写入 Hbase 中


# 时间 客流排名
2018-09-01 11:30 001 column=traffic:count, timestamp=1609614078234, value=117
2018-09-01 11:30 001 column=traffic:name, timestamp=1609614078234,value=\xE8\x80\x81\xE8\xA1\x97

代码中统计的是,过去五分钟的客流量信息,每一分钟滚动一次


.timeWindow(Time.minutes(5), Time.minutes(1))

3.7.2 按照不同的业务场景从Hbase中读取数据

执行 com.ngt.traffic.HBaseReaderStationTraffic 实现相关功能

需求1:查询 2018-09-01 08:30 - 2018-09-01 08:45 各站点最近五分钟的客流


case class Traffic(time: String, rank: String, station: String, count: String)
val dataStream1: DataStream[(String, String)] =
// 表名,列族名,起始Rowkey,终止Rowkey(取不到)
env.addSource(new HBaseReader(“StationTraffic”, “traffic”,“2018-09-01 08:30”, “2018-09-01 08:46”))

dataStream1.map(x => {val keys: Array[String] = x._1.split(" ")val values: Array[String] = x._2.split("_")Traffic("时间:" + keys(1), "站点:" + values(1), "排名:" + keys(2), "客流量:" + values(0))
})
.map(data => {println(data.time, data.rank, data.station, data.count)
})---------------------------------------
(时间:08:30,排名:001,站点:五和,客流量:548)
(时间:08:30,排名:002,站点:民治,客流量:386)
(时间:08:30,排名:003,站点:布吉,客流量:369)
(时间:08:30,排名:004,站点:丹竹头,客流量:343)
(时间:08:30,排名:005,站点:南山站,客流量:340)
(时间:08:30,排名:006,站点:深圳北,客流量:313)
(时间:08:30,排名:007,站点:罗湖站,客流量:306)
......

需求2:查询 2018-09-01 06:30 - 2018-09-01 11:30 客流量排名前 3 的站点


val dataStream2: DataStream[(String, String)] =
env.addSource(new HBaseReader(“StationTraffic”, “traffic”,“2018-09-01 06:30”, “2018-09-01 11:31”))

dataStream2.map(x => {val keys: Array[String] = x._1.split(" ")val values: Array[String] = x._2.split("_")Traffic("时间:" + keys(1), "排名:" + keys(2), "站点:" + values(1), "客流量:" + values(0))
})
.filter(_.rank.substring(3).toInt <= 3)
.map(data => {println(data.time, data.rank, data.station, data.count)
})
---------------------------------------
(时间:08:30,排名:001,站点:五和,客流量:548)
(时间:08:30,排名:002,站点:民治,客流量:386)
(时间:08:30,排名:003,站点:布吉,客流量:369)
(时间:08:31,排名:001,站点:五和,客流量:577)
(时间:08:31,排名:002,站点:南山站,客流量:436)
(时间:08:31,排名:003,站点:布吉,客流量:405)
(时间:08:32,排名:001,站点:五和,客流量:602)
(时间:08:32,排名:002,站点:南山站,客流量:439)
(时间:08:32,排名:003,站点:布吉,客流量:413)
(时间:08:33,排名:001,站点:五和,客流量:594)
(时间:08:33,排名:002,站点:南山站,客流量:451)
(时间:08:33,排名:003,站点:布吉,客流量:393)
......

不同乘车区间是同样的道理,更多的业务场景不在列举。

4 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

相关文章:

地铁大数据客流分析系统 设计与实现 计算机竞赛

文章目录 1 前言1.1 实现目的 2 数据集2.2 数据集概况2.3 数据字段 3 实现效果3.1 地铁数据整体概况3.2 平均指标3.3 地铁2018年9月开通运营的线路3.4 客流量相关统计3.4.1 线路客流量排行3.4.2 站点客流量排行3.4.3 入站客流排行3.4.4 整体客流随时间变化趋势3.4.5 不同线路客…...

00后都到适婚年龄啦!90后的还在低调什么?

当你的想法还停留在00后读书时代&#xff0c;其实大部分00后早已步入工作社会&#xff0c;还有不少人已经步入婚姻。广东金媒人婚恋&#xff0c;无论是广州、深圳、东莞、佛山举办活动的参与者中&#xff0c;00后的男生女生都占了不少。 广州深圳这样一二线城市的单身年轻人群&…...

reactnative使用七牛云上传图片

安装react-native-qiniu npm install react-native-qiniu --save 上传文件 import Qiniu,{Auth,ImgOps,Conf,Rs,Rpc} from react-native-qiniu;// 初始化七牛云配置 // Qiniu.region.z0&#xff1a;华东地区&#xff08;默认值&#xff09;。 // Qiniu.region.z1&#xff1a…...

在JavaScript中,如何创建一个数组或对象?

在JavaScript中,可以使用以下方式创建数组和对象: 一:创建数组(Array): 1:使用数组字面量(Array Literal)语法,使用方括号 [] 包裹元素,并用逗号分隔: let array1 = []; // 空数组 let array2 = [1, 2, 3]; // 包含三个数字的数组 let array3 = [apple, banana,…...

001.第一个C语言项目

Visual studio2022的使用 创建第一个C语言项目和源文件 https://blog.csdn.net/qq_45037165/article/details/124520286 第一个C语言项目 #include<stdio.h> int main() {printf("Hello World");return 0; }运行结果&#xff1a; 第一行为库函数&#xff0…...

luffy项目后端轮播图接口

后台主页功能 需求 根据原型图&#xff0c;分析出首页需要配合俩接口 轮播图接口&#xff08;要写&#xff09; 查询所有轮播图 推荐课程接口(暂时先不写) 设计表 轮播图表&#xff1a;Banner 写轮播图接口 查询所有轮播图 轮播图表 写一个公共表模型且只用于继承 fr…...

如何通过Photoshop将视频转换成GIF图片

一、应用场景 1、将视频转有趣动图发朋友圈 2、写CSDN无法上传视频&#xff0c;而可以用GIF动图替代 3、其他 二、实现步骤 1、打开Photoshop APP 2、点击文件——导入——视频帧到图层 3、选择视频文件 4、配置视频信息&#xff0c;按照图片提示配置完毕之后点击确定&…...

书单|1024程序员狂欢节充能书单!

点击链接进入图书专题 1024程序员节 “IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台&#xff0c;致力于帮助读者在广义的IT领域里&#xff0c;掌握更专业、更实用的知识与技能&#xff0c;快速提升职场竞争力。 点击蓝色微信名可快速关注我们。 一年一度的1024程序员…...

GRS认证与TC交易证明的区别

TC&#xff08;Transaction Certificate&#xff09;交易证书是由认证单位向其客户出具再生含量证明&#xff0c;证明本次 销售产品符合GRS标准。TC交易证书上列明 卖方&#xff08;seller&#xff09;&#xff0c;买方&#xff08;buyer&#xff09;,收货方 &#xff08;consi…...

高精度时间测量(TDC)电路MS1022

MS1022 是一款高精度时间测量电路&#xff0c;内部集成了模拟比 较器、模拟开关、施密特触发器等器件&#xff0c;从而大大简化了外 围电路。同时内部增加了第一波检测功能&#xff0c;使抗干扰能力大 大提高。通过读取第一个回波脉冲的相对宽度&#xff0c;用户可以获 得接…...

js关键字

JavaScript 的关键字是指有特殊含义的单词&#xff0c;它们不能用作标识符&#xff0c;比如变量名、函数名等。 以下是 JavaScript 的关键字列表及其解释&#xff1a; true&#xff1a;布尔值 truefalse&#xff1a;布尔值 falsenull&#xff1a;表示一个空值或空对象引用und…...

《算法通关村第二关——指定区间反转问题解析》

《算法通关村第二关——指定区间反转问题解析》 题目描述 给你单链表的头指针head和两个整数left和right&#xff0c;其中left < right 。 请你反转从位置left到位置right的链表节点&#xff0c;返回反转后的链表。 示例1&#xff1a; 输入&#xff1a; head [1,2,3,4,5…...

掌控安全Update.jsp SQL注入

0x01 漏洞介绍 亿赛通电子文档安全管理系统是国内最早基于文件过滤驱动技术的文档加解密产品之一&#xff0c;保护范围涵盖终端电脑&#xff08;Windows、Mac、Linux系统平台&#xff09;、智能终端&#xff08;Android、IOS&#xff09;及各类应用系统&#xff08;OA、知识管理…...

C#将图片转换为ICON格式(程序运行图标)

介绍&#xff1a; C#创建窗体项目后左上角有显示图标&#xff0c;这个图标会在运行的时候显示在下面进程这里&#xff0c;但是必须是ico格式的图片才可以导入使用。以下是将图片打开后保存为ico格式代码。 代码如下&#xff1a; main函数测试 new 将图片转换成icon格式(&qu…...

ELK架构Logstash的相关插件:grok、multiline、mutate、date的详细介绍

文章目录 1. grok (正则捕获插件)1.1 作用1.2 正则表达式的类型1.2.1 内置正则表达式1.2.2 自定义正则表达式 2. mutate (数据修改插件&#xff09;2.1 作用2.2 常见配置选项2.3 应用实例 3. multiline &#xff08;多行合并插件&#xff09;3.1 作用3.2 常用配置项及示例3.2.1…...

linux 防火墙介绍以及iptables的使用

背景介绍 在前几天&#xff0c;于工发现我们内部的150服务器7554端口被外网访问了。该应用提供着内部的摄像头资源。为了避免被入侵&#xff0c;于是我添加了一些iptables规则&#xff0c;防止外网的访问。 解决方式 解决方式有两种&#xff1a; 关闭公司公网路由器对150服务…...

原码、反码、补码在汇编中的应用

原文章&#xff1a;知乎 原码和二进制类似&#xff0c;不过它有符号位。正数符号位为0&#xff0c;负数为1 。 例&#xff1a;40000 0100 &#xff0c;-41000 0100 原码是人脑最容易理解和计算的表示方式。 但是这在计算机中计算就出了问题&#xff0c;这两个&#xff08;4…...

【红日靶场】vulnstack5-完整渗透过程

系列文章目录 【红日靶场】vulnstack1-完整渗透过程 【红日靶场】vulnstack2-完整渗透过程 【红日靶场】vulnstack3-完整渗透过程 【红日靶场】vulnstack4-完整渗透过程 文章目录 系列文章目录描述虚拟机密码红队思路 一、环境初始化二、开始渗透外网打点上线cs权限提升域信息…...

嵌入式平台的电源总结

本文引注: https://mp.weixin.qq.com/s/PuSxHDFbJjjHEReukLSvyg 1.AC的定义 Alternating Current&#xff08;交流&#xff09;的首字母缩写。AC是大小和极性&#xff08;方向&#xff09;随时间呈周期性变化的电流。电流极性在1秒内的变化次数被称为频率&#xff0c;以Hz为单位…...

@Binds methods must be abstract 报错指南

bindings方法必须是抽象的 Binds使用错误...

自定义反序列化类将LocalDate时间格式转为 LocalDateTime

从前端接收数据反序列化成类,如果时间格式不一致可能会反序列化失败 public class StorageDTO implements Serializable {private static final long serialVersionUID 1L;......//实体类中格式为JsonFormat(pattern "yyyy-MM-dd")JsonDeserialize(using CustomL…...

MySQL JSON_TABLE() 函数

JSON_TABLE()函数从一个指定的JSON文档中提取数据并返回一个具有指定列的关系表。 应用&#xff1a;数据库字段以JSON 存储后&#xff0c;实际应用需要对其中一个字段进行查询 语法 JSON_TABLE(json,path COLUMNS(column[,column[,...]]))column:name参数 json必需的。一个 …...

【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型

【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型 SKRR这是Gustau Camps-Valls等人在“用深度结构核回归检索物理参数”中提出的结构核岭回归&#xff08;SKRR&#xff09;方法。 参考文献&#xff1a; Camps-Valls,Retrieval of Physical Pa…...

Qt消息对话框的使用

本文介绍Qt消息对话框的使用。 QMessageBox类是Qt编程中常用到的一个类&#xff0c;主要用来进行一些简单的消息提示&#xff0c;比如&#xff1a;问题对话框&#xff0c;信息对话框等&#xff0c;这些对话框都属于QMessageBox类的静态方法&#xff0c;使用起来比较简单&#…...

spring的Ioc、DI以及Bean的理解

文章目录 什么是Ioc&#xff1f;Spring和这有什么关系Spring是怎么做的&#xff1f;如果service层对dao层有依赖该怎么办&#xff1f;什么叫做依赖注入Spring这样做的目的是什么参考文献 什么是Ioc&#xff1f; Ioc(Inversion of Control) 控制反转&#xff0c;就是使用对象时…...

倒计时 天时分秒

shijian() {const EndTIME new Date(开始时间变量); // 截止时间const NowTime new Date(); // 开始时间const usedTime EndTIME - NowTime; // 相差的毫秒数const days Math.floor(usedTime / (24 * 3600 * 1000)); // 计算出天数const leavel usedTime % (24 * 3600 * 1…...

Spring篇---第六篇

系列文章目录 文章目录 系列文章目录一、Spring 框架中的单例 Bean 是线程安全的么?二、Spring 是怎么解决循环依赖的?三、说说事务的隔离级别一、Spring 框架中的单例 Bean 是线程安全的么? Spring 框架并没有对单例 Bean 进行任何多线程的封装处理。 关于单例 Bean 的线程…...

【unity小技巧】适用于任何 2d 游戏的钥匙门系统和buff系统——UnityEvent的使用

文章目录 每篇一句前言开启配置门的开启动画代码调用&#xff0c;控制开启门动画 新增CollisionDetector 脚本&#xff0c;使用UnityEvent &#xff0c;控制钥匙和门的绑定多把钥匙控制多个门一把钥匙控制多个门 BUFF系统扩展参考源码完结 每篇一句 人总是害怕去追求自己最重要…...

爬虫ip如何加入到代码里实现自动化数据抓取

以下是一个使用HTTP:Tiny和www.weibo.com的音频爬虫程序的示例。这个示例使用了https://www.duoip.cn/get_proxy来获取爬虫IP。请注意&#xff0c;这个示例可能需要根据你的实际需求进行调整。 #!/usr/bin/perluse strict; use warnings; use HTTP::Tiny; use LWP::UserAgent; …...

在win10上安装配置Hadoop的环境变量

一、背景 在windows10系统中运行seatunnel 二、安装部署 2.1. 下载 Hadoop包 从 Apache Hadoop 官网下载最新版本的 Hadoop&#xff0c;版本号保持与服务端的Hadoop版本一致。 https://hadoop.apache.org/releases.htmlIndex of /apache/hadoop/core/hadoop-3.2.3/ 2.2. 解…...