From 698fd8b14e3e34c6cf524f55e98f5a25e562fd0f Mon Sep 17 00:00:00 2001
From: qian <2269112473@qq.com>
Date: Mon, 16 Dec 2024 20:36:56 +0800
Subject: [PATCH 01/24] 1
---
.idea/encodings.xml | 2 +
.idea/workspace.xml | 188 +++++-------------
.../edu/hust/conf/ConfigurationManager.java | 2 +-
3 files changed, 57 insertions(+), 135 deletions(-)
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index b26911b..af673e7 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -2,5 +2,7 @@
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index f042c63..ca77c4a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -320,212 +320,132 @@
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/main/java/cn/edu/hust/conf/ConfigurationManager.java b/src/main/java/cn/edu/hust/conf/ConfigurationManager.java
index dbae85b..c6760c1 100644
--- a/src/main/java/cn/edu/hust/conf/ConfigurationManager.java
+++ b/src/main/java/cn/edu/hust/conf/ConfigurationManager.java
@@ -5,7 +5,7 @@ import java.util.Properties;
/**
* 配置文件管理类
- * 主要的功能:从特定的properties文件中读取相应的key/value
+ * 主要的功能:从特定的properties文件中读取相应的key/value11
*/
public class ConfigurationManager {
private static Properties prop=new Properties();
From 1d573a7c89b4260c26e2dab46dfcdaed16b01240 Mon Sep 17 00:00:00 2001
From: qian <2269112473@qq.com>
Date: Mon, 16 Dec 2024 21:05:42 +0800
Subject: [PATCH 02/24] 1.
---
.idea/compiler.xml | 2 +-
.idea/jarRepositories.xml | 20 +++
.idea/workspace.xml | 156 +++++++-----------
UserActionAnalyzePlatform.iml | 2 +-
pom.xml | 8 +
.../edu/hust/conf/ConfigurationManager.java | 2 +-
.../cn/edu/hust/domain/SessionAggrStat.java | 80 ++++++++-
.../java/cn/edu/hust/jdbc/JDBCHelperTest.java | 87 ++++++----
8 files changed, 218 insertions(+), 139 deletions(-)
create mode 100644 .idea/jarRepositories.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 6e7df1b..b4bf926 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -10,7 +10,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index ca77c4a..6f01dc9 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,58 +1,24 @@
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -142,11 +113,6 @@
-
@@ -157,6 +123,7 @@
+
@@ -278,38 +245,32 @@
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -339,6 +300,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -449,9 +421,7 @@
-
-
-
+
@@ -471,6 +441,7 @@
+
1529592741848
@@ -486,7 +457,14 @@
1529593229553
-
+
+ 1734352616873
+
+
+
+ 1734352616873
+
+
@@ -589,46 +567,24 @@
-
+
-
-
-
+
-
-
-
-
-
-
-
+
+
diff --git a/UserActionAnalyzePlatform.iml b/UserActionAnalyzePlatform.iml
index 6e9857d..02911fd 100644
--- a/UserActionAnalyzePlatform.iml
+++ b/UserActionAnalyzePlatform.iml
@@ -1,6 +1,6 @@
-
+
diff --git a/pom.xml b/pom.xml
index 9b55150..e800c9a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -138,6 +138,14 @@
1.6
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 7
+ 7
+
+
diff --git a/src/main/java/cn/edu/hust/conf/ConfigurationManager.java b/src/main/java/cn/edu/hust/conf/ConfigurationManager.java
index c6760c1..dbae85b 100644
--- a/src/main/java/cn/edu/hust/conf/ConfigurationManager.java
+++ b/src/main/java/cn/edu/hust/conf/ConfigurationManager.java
@@ -5,7 +5,7 @@ import java.util.Properties;
/**
* 配置文件管理类
- * 主要的功能:从特定的properties文件中读取相应的key/value11
+ * 主要的功能:从特定的properties文件中读取相应的key/value
*/
public class ConfigurationManager {
private static Properties prop=new Properties();
diff --git a/src/main/java/cn/edu/hust/domain/SessionAggrStat.java b/src/main/java/cn/edu/hust/domain/SessionAggrStat.java
index b5d4521..ff8313c 100644
--- a/src/main/java/cn/edu/hust/domain/SessionAggrStat.java
+++ b/src/main/java/cn/edu/hust/domain/SessionAggrStat.java
@@ -2,28 +2,68 @@ package cn.edu.hust.domain;
import java.io.Serializable;
+// SessionAggrStat类,实现了Serializable接口,意味着该类的对象可以被序列化和反序列化,
+// 常用于对象在网络传输、持久化存储等场景下的保存和恢复操作
public class SessionAggrStat implements Serializable {
+
+ // 任务ID,用于标识相关的任务,通常在涉及多任务处理的场景下,区分不同任务对应的统计数据
private Long taskId;
+
+ // 会话数量,记录某个范围内的会话的总数
private Long SessionCount;
+
+ // 访问时长在1秒到3秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_1s_3s;
+
+ // 访问时长在4秒到6秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_4s_6s;
+
+ // 访问时长在7秒到9秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_7s_9s;
+
+ // 访问时长在10秒到30秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_10s_30s;
+
+ // 访问时长在30秒到60秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_30s_60s;
+
+ // 访问时长在1分钟到3分钟区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_1m_3m;
+
+ // 访问时长在3分钟到10分钟区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_3m_10m;
+
+ // 访问时长在10分钟到30分钟区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_10m_30m;
+
+ // 访问时长大于30分钟的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型
private double visit_Length_30m;
+
+ // 步长在1到3区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型
private double step_Length_1_3;
+
+ // 步长在4到6区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型
private double step_Length_4_6;
+
+ // 步长在7到9区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型
private double step_Length_7_9;
+
+ // 步长在10到30区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型
private double step_Length_10_30;
+
+ // 步长在30到60区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型
private double step_Length_30_60;
+
+ // 步长大于60的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型
private double step_Length_60;
+ // 无参构造函数,用于创建SessionAggrStat类的实例,
+ // 当通过默认方式创建对象时(如:SessionAggrStat obj = new SessionAggrStat();)会调用此构造函数
public SessionAggrStat() {
}
+ // 设置方法,用于一次性设置SessionAggrStat类对象的所有属性值
+ // 参数依次对应各个属性的值,按照顺序传入相应的数据来初始化对象的各个属性
public void set(Long taskId, Long sessionCount, double visit_Length_1s_3s, double visit_Length_4s_6s, double visit_Length_7s_9s, double visit_Length_10s_30s, double visit_Length_30s_60s, double visit_Length_1m_3m, double visit_Length_3m_10m, double visit_Length_10m_30m, double visit_Length_30m, double step_Length_1_3, double step_Length_4_6, double step_Length_7_9, double step_Length_10_30, double step_Length_30_60, double step_Length_60) {
this.taskId = taskId;
SessionCount = sessionCount;
@@ -44,139 +84,173 @@ public class SessionAggrStat implements Serializable {
this.step_Length_60 = step_Length_60;
}
+ // 获取任务ID的方法,返回当前SessionAggrStat对象的任务ID属性值
public Long getTaskId() {
return taskId;
}
+ // 设置任务ID的方法,用于给当前SessionAggrStat对象的任务ID属性赋值
public void setTaskId(Long taskId) {
this.taskId = taskId;
}
+ // 获取会话数量的方法,返回当前SessionAggrStat对象的会话数量属性值
public Long getSessionCount() {
return SessionCount;
}
+ // 设置会话数量的方法,用于给当前SessionAggrStat对象的会话数量属性赋值
public void setSessionCount(Long sessionCount) {
SessionCount = sessionCount;
}
+ // 获取访问时长在1秒到3秒区间的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_1s_3s() {
return visit_Length_1s_3s;
}
+ // 设置访问时长在1秒到3秒区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setVisit_Length_1s_3s(double visit_Length_1s_3s) {
this.visit_Length_1s_3s = visit_Length_1s_3s;
}
+ // 获取访问时长在4秒到6秒区间的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_4s_6s() {
return visit_Length_4s_6s;
}
+ // 设置访问时长在4秒到6秒区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setVisit_Length_4s_6s(double visit_Length_4s_6s) {
this.visit_Length_4s_6s = visit_Length_4s_6s;
}
+ // 获取访问时长在7秒到9秒区间的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_7s_9s() {
return visit_Length_7s_9s;
}
+ // 设置访问时长在7秒到9秒区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setVisit_Length_7s_9s(double visit_Length_7s_9s) {
this.visit_Length_7s_9s = visit_Length_7s_9s;
}
+ // 获取访问时长在10秒到30秒区间的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_10s_30s() {
return visit_Length_10s_30s;
}
+ // 设置访问时长在10秒到30秒区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setVisit_Length_10s_30s(double visit_Length_10s_30s) {
this.visit_Length_10s_30s = visit_Length_10s_30s;
}
+ // 获取访问时长在30秒到60秒区间的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_30s_60s() {
return visit_Length_30s_60s;
}
+ // 设置访问时长在30秒到60秒区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setVisit_Length_30s_60s(double visit_Length_30s_60s) {
this.visit_Length_30s_60s = visit_Length_30s_60s;
}
+ // 获取访问时长在1分钟到3分钟区间的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_1m_3m() {
return visit_Length_1m_3m;
}
+ // 设置访问时长在1分钟到3分钟区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setVisit_Length_1m_3m(double visit_Length_1m_3m) {
this.visit_Length_1m_3m = visit_Length_1m_3m;
}
+ // 获取访问时长在3分钟到10分钟区间的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_3m_10m() {
return visit_Length_3m_10m;
}
- public void setVisit_Legth_3m_10m(double visit_Legth_3m_10m) {
- this.visit_Length_3m_10m = visit_Legth_3m_10m;
+ // 设置访问时长在3分钟到10分钟区间的相关占比或统计数值的方法,用于给对应属性赋值,此处方法名有拼写错误(原代码中为setVisit_Legth_3m_10m,应为setVisit_Length_3m_10m)
+ public void setVisit_Length_3m_10m(double visit_Length_3m_10m) {
+ this.visit_Length_3m_10m = visit_Length_3m_10m;
}
+ // 获取访问时长在10分钟到30分钟区间的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_10m_30m() {
return visit_Length_10m_30m;
}
+ // 设置访问时长在10分钟到30分钟区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setVisit_Length_10m_30m(double visit_Length_10m_30m) {
this.visit_Length_10m_30m = visit_Length_10m_30m;
}
+ // 获取访问时长大于30分钟的相关占比或统计数值的方法,返回对应属性值
public double getVisit_Length_30m() {
return visit_Length_30m;
}
+ // 设置访问时长大于30分钟的相关占比或统计数值的方法,用于给对应属性赋值
public void setVisit_Length_30m(double visit_Length_30m) {
this.visit_Length_30m = visit_Length_30m;
}
+ // 获取步长在1到3区间的相关占比或统计数值的方法,返回对应属性值
public double getStep_Length_1_3() {
return step_Length_1_3;
}
+ // 设置步长在1到3区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setStep_Length_1_3(double step_Length_1_3) {
this.step_Length_1_3 = step_Length_1_3;
}
+ // 获取步长在4到6区间的相关占比或统计数值的方法,返回对应属性值
public double getStep_Length_4_6() {
return step_Length_4_6;
}
+ // 设置步长在4到6区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setStep_Length_4_6(double step_Length_4_6) {
this.step_Length_4_6 = step_Length_4_6;
}
+ // 获取步长在7到9区间的相关占比或统计数值的方法,返回对应属性值
public double getStep_Length_7_9() {
return step_Length_7_9;
}
+ // 设置步长在7到9区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setStep_Length_7_9(double step_Length_7_9) {
this.step_Length_7_9 = step_Length_7_9;
}
+ // 获取步长在10到30区间的相关占比或统计数值的方法,返回对应属性值
public double getStep_Length_10_30() {
return step_Length_10_30;
}
+ // 设置步长在10到30区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setStep_Length_10_30(double step_Length_10_30) {
this.step_Length_10_30 = step_Length_10_30;
}
+ // 获取步长在30到60区间的相关占比或统计数值的方法,返回对应属性值
public double getStep_Length_30_60() {
return step_Length_30_60;
}
+ // 设置步长在30到60区间的相关占比或统计数值的方法,用于给对应属性赋值
public void setStep_Length_30_60(double step_Length_30_60) {
this.step_Length_30_60 = step_Length_30_60;
}
+ // 获取步长大于60的相关占比或统计数值的方法,返回对应属性值
public double getStep_Length_60() {
return step_Length_60;
}
+ // 设置步长大于60的相关占比或统计数值的方法,用于给对应属性赋值
public void setStep_Length_60(double step_Length_60) {
this.step_Length_60 = step_Length_60;
}
-}
+}
\ No newline at end of file
diff --git a/src/test/java/cn/edu/hust/jdbc/JDBCHelperTest.java b/src/test/java/cn/edu/hust/jdbc/JDBCHelperTest.java
index dbcc9ae..a216d81 100644
--- a/src/test/java/cn/edu/hust/jdbc/JDBCHelperTest.java
+++ b/src/test/java/cn/edu/hust/jdbc/JDBCHelperTest.java
@@ -1,47 +1,68 @@
-package cn.edu.hust.jdbc;
-
-import org.junit.Test;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class JDBCHelperTest {
- @Test
- public void testUpdate()
- {
- String sql="insert into user(username,age) values(?,?)";
- Object[] params={"zhangsan",12};
- JDBCHelper.getInstance().excuteUpdate(sql,params);
+package cn.edu.hust.jdbc; // 包名,通常用来指定代码所属的模块或功能。
+
+import org.junit.Test; // 导入JUnit的Test注解,用于标记测试方法。
+
+import java.sql.ResultSet; // 导入SQL的ResultSet类,用于处理查询结果集。
+import java.sql.SQLException; // 导入SQL异常类,用于捕获和处理数据库相关的错误。
+import java.util.ArrayList; // 导入ArrayList类,用于创建动态数组。
+import java.util.List; // 导入List接口,用于定义列表类型的集合。
+
+public class JDBCHelperTest { // 测试类,包含多个测试方法,用于验证JDBCHelper类的功能。
+
+ // 测试更新操作(插入数据)
+ @Test // 标记此方法为测试方法,JUnit会自动识别并执行。
+ public void testUpdate() {
+ // SQL插入语句,插入一个用户信息到user表中。
+ String sql = "insert into user(username, age) values(?, ?)";
+
+ // 插入的参数,表示要插入的用户名是"zhangsan",年龄是12。
+ Object[] params = {"zhangsan", 12};
+
+ // 使用JDBCHelper类的单例实例执行更新操作(插入)。
+ JDBCHelper.getInstance().excuteUpdate(sql, params);
}
+ // 测试批量操作(批量插入数据)
+ @Test // 标记此方法为测试方法。
+ public void testBatch() {
+ // SQL插入语句,插入多个用户信息到user表中。
+ String sql = "insert into user(username, age) values(?, ?)";
- @Test
- public void testBatch()
- {
- String sql="insert into user(username,age) values(?,?)";
- List
-
-
-
-
-
-
-
-
-
-
-
@@ -440,7 +432,8 @@
-
+
+
1529592741848
@@ -568,7 +561,14 @@
1734361040227
-
+
+ 1734361114560
+
+
+
+ 1734361114560
+
+
@@ -699,7 +699,8 @@
-
+
+
From 4c7cb3b32ebd2c793fd39c212a9e94edd4b9bd0c Mon Sep 17 00:00:00 2001
From: qian <2269112473@qq.com>
Date: Tue, 17 Dec 2024 10:09:14 +0800
Subject: [PATCH 19/24] 11
---
...e_directory_api_api_asn1_api_1_0_0_M20.xml | 36 +++++++++++++++
...pache_directory_api_api_util_1_0_0_M20.xml | 36 +++++++++++++++
...rectory_server_apacheds_i18n_2_0_0_M15.xml | 13 ------
...rver_apacheds_kerberos_codec_2_0_0_M15.xml | 44 +++++++++++++++++--
...apache_hadoop_hadoop_annotations_2_6_4.xml | 35 +++++++++++++++
...n__org_apache_hadoop_hadoop_auth_2_6_4.xml | 35 +++++++++++++++
..._org_apache_hadoop_hadoop_client_2_6_4.xml | 35 +++++++++++++++
.idea/workspace.xml | 35 ++++++++++++---
8 files changed, 245 insertions(+), 24 deletions(-)
delete mode 100644 .idea/libraries/Maven__org_apache_directory_server_apacheds_i18n_2_0_0_M15.xml
diff --git a/.idea/libraries/Maven__org_apache_directory_api_api_asn1_api_1_0_0_M20.xml b/.idea/libraries/Maven__org_apache_directory_api_api_asn1_api_1_0_0_M20.xml
index bd5ac37..e1c723a 100644
--- a/.idea/libraries/Maven__org_apache_directory_api_api_asn1_api_1_0_0_M20.xml
+++ b/.idea/libraries/Maven__org_apache_directory_api_api_asn1_api_1_0_0_M20.xml
@@ -1,12 +1,48 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Maven__org_apache_directory_api_api_util_1_0_0_M20.xml b/.idea/libraries/Maven__org_apache_directory_api_api_util_1_0_0_M20.xml
index b3d86af..5cc4802 100644
--- a/.idea/libraries/Maven__org_apache_directory_api_api_util_1_0_0_M20.xml
+++ b/.idea/libraries/Maven__org_apache_directory_api_api_util_1_0_0_M20.xml
@@ -1,12 +1,48 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Maven__org_apache_directory_server_apacheds_i18n_2_0_0_M15.xml b/.idea/libraries/Maven__org_apache_directory_server_apacheds_i18n_2_0_0_M15.xml
deleted file mode 100644
index 7a73f45..0000000
--- a/.idea/libraries/Maven__org_apache_directory_server_apacheds_i18n_2_0_0_M15.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_directory_server_apacheds_kerberos_codec_2_0_0_M15.xml b/.idea/libraries/Maven__org_apache_directory_server_apacheds_kerberos_codec_2_0_0_M15.xml
index 5378216..5ddee77 100644
--- a/.idea/libraries/Maven__org_apache_directory_server_apacheds_kerberos_codec_2_0_0_M15.xml
+++ b/.idea/libraries/Maven__org_apache_directory_server_apacheds_kerberos_codec_2_0_0_M15.xml
@@ -1,13 +1,49 @@
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_hadoop_hadoop_annotations_2_6_4.xml b/.idea/libraries/Maven__org_apache_hadoop_hadoop_annotations_2_6_4.xml
index 1c70866..55605d7 100644
--- a/.idea/libraries/Maven__org_apache_hadoop_hadoop_annotations_2_6_4.xml
+++ b/.idea/libraries/Maven__org_apache_hadoop_hadoop_annotations_2_6_4.xml
@@ -1,12 +1,47 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Maven__org_apache_hadoop_hadoop_auth_2_6_4.xml b/.idea/libraries/Maven__org_apache_hadoop_hadoop_auth_2_6_4.xml
index bd259f5..c386086 100644
--- a/.idea/libraries/Maven__org_apache_hadoop_hadoop_auth_2_6_4.xml
+++ b/.idea/libraries/Maven__org_apache_hadoop_hadoop_auth_2_6_4.xml
@@ -1,12 +1,47 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Maven__org_apache_hadoop_hadoop_client_2_6_4.xml b/.idea/libraries/Maven__org_apache_hadoop_hadoop_client_2_6_4.xml
index d878f24..af782d6 100644
--- a/.idea/libraries/Maven__org_apache_hadoop_hadoop_client_2_6_4.xml
+++ b/.idea/libraries/Maven__org_apache_hadoop_hadoop_client_2_6_4.xml
@@ -1,12 +1,47 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 1917c84..20b5b89 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,10 +4,10 @@
-
-
-
-
+
+
+
+
@@ -302,6 +302,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -433,7 +446,7 @@
-
+
1529592741848
@@ -568,7 +581,14 @@
1734361114560
-
+
+ 1734400912918
+
+
+
+ 1734400912918
+
+
@@ -700,7 +720,8 @@
-
+
+
From 7105fc9e2980c458378da633aa66cf7d55447c40 Mon Sep 17 00:00:00 2001
From: qian <2269112473@qq.com>
Date: Tue, 17 Dec 2024 10:13:25 +0800
Subject: [PATCH 20/24] 12
---
.idea/workspace.xml | 21 +--
.../java/cn/edu/hust/mockData/MockData.java | 144 +++++++++++++-----
2 files changed, 118 insertions(+), 47 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 20b5b89..7806d18 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,12 +4,7 @@
-
-
-
-
-
-
+
@@ -446,7 +441,7 @@
-
+
1529592741848
@@ -588,7 +583,14 @@
1734400912918
-
+
+ 1734401354672
+
+
+
+ 1734401354672
+
+
@@ -721,7 +723,8 @@
-
+
+
diff --git a/src/main/java/cn/edu/hust/mockData/MockData.java b/src/main/java/cn/edu/hust/mockData/MockData.java
index f6d6387..846361f 100644
--- a/src/main/java/cn/edu/hust/mockData/MockData.java
+++ b/src/main/java/cn/edu/hust/mockData/MockData.java
@@ -17,39 +17,63 @@ import org.apache.spark.sql.SQLContext;
import org.apache.spark.sql.types.DataTypes;
import org.apache.spark.sql.types.StructType;
-
/**
* 模拟数据程序
+ * 这个类主要用于模拟生成一些数据,并将其转换为DataFrame格式,
+ * 同时注册为临时表,方便后续在Spark SQL环境中进行操作和分析。
* @author Administrator
*
*/
public class MockData {
/**
- * 弄你数据
- * @param sc
- * @param sqlContext
+ * mock方法用于生成模拟数据,并基于生成的数据创建DataFrame,然后注册为临时表。
+ * 它接收JavaSparkContext和SQLContext作为参数,这两个参数是在Spark中进行数据处理和SQL操作的关键上下文对象。
+ * @param sc JavaSparkContext对象,用于在Spark中创建和操作分布式数据集(RDD等)。
+ * @param sqlContext SQLContext对象,用于在Spark中执行SQL相关操作,如创建DataFrame、注册临时表等。
*/
public static void mock(JavaSparkContext sc,
- SQLContext sqlContext) {
+ SQLContext sqlContext) {
+
+ // 创建一个用于存储Row对象的列表,后续将用于构建DataFrame,每个Row对象代表一行数据
List rows = new ArrayList();
-
+
+ // 定义一个字符串数组,包含了一些模拟的搜索关键词,用于模拟用户的搜索行为
String[] searchKeywords = new String[] {"火锅", "蛋糕", "重庆辣子鸡", "重庆小面",
"呷哺呷哺", "新辣道鱼火锅", "国贸大厦", "太古商场", "日本料理", "温泉"};
+
+ // 通过DateUtils工具类获取今天的日期,作为模拟数据中日期相关字段的基础值
String date = DateUtils.getTodayDate();
+
+ // 定义一个字符串数组,包含了用户可能进行的操作类型,如搜索、点击、下单、支付
String[] actions = new String[]{"search", "click", "order", "pay"};
+
+ // 创建一个Random对象,用于生成各种随机数,来模拟不同的情况
Random random = new Random();
-
+
+ // 外层循环模拟100个不同的用户
for(int i = 0; i < 100; i++) {
- long userid = random.nextInt(100);
-
+ // 为每个用户随机生成一个用户ID,范围在0到99之间
+ long userid = random.nextInt(100);
+
+ // 中层循环模拟每个用户的10次会话
for(int j = 0; j < 10; j++) {
- String sessionid = UUID.randomUUID().toString().replace("-", "");
+ // 生成一个唯一的会话ID,通过UUID生成后去除其中的'-'字符
+ String sessionid = UUID.randomUUID().toString().replace("-", "");
+
+ // 生成一个基础的操作时间,格式为今天的日期加上一个随机的小时数(0到22)
String baseActionTime = date + " " + random.nextInt(23);
-
+
+ // 内层循环模拟每次会话中的多次操作,操作次数是随机的(0到99次之间)
for(int k = 0; k < random.nextInt(100); k++) {
- long pageid = random.nextInt(10);
+ // 为每次操作随机生成一个页面ID,范围在0到9之间
+ long pageid = random.nextInt(10);
+
+ // 生成完整的操作时间,在基础操作时间上补充随机的分钟和秒数,
+ // 通过StringUtils的fulfuill方法确保分钟和秒数是两位数格式(不足两位前面补0)
String actionTime = baseActionTime + ":" + StringUtils.fulfuill(String.valueOf(random.nextInt(59))) + ":" + StringUtils.fulfuill(String.valueOf(random.nextInt(59)));
+
+ // 初始化一些操作相关的字段为null,后续根据具体的操作类型来赋值
String searchKeyword = null;
Long clickCategoryId = null;
Long clickProductId = null;
@@ -57,33 +81,45 @@ public class MockData {
String orderProductIds = null;
String payCategoryIds = null;
String payProductIds = null;
-
+
+ // 随机选择一个操作类型(从定义的actions数组中随机选取)
String action = actions[random.nextInt(4)];
+
+ // 根据选择的操作类型,设置相应的字段值
if("search".equals(action)) {
- searchKeyword = searchKeywords[random.nextInt(10)];
+ // 如果是搜索操作,从搜索关键词数组中随机选取一个作为搜索关键词
+ searchKeyword = searchKeywords[random.nextInt(10)];
} else if("click".equals(action)) {
- clickCategoryId = Long.valueOf(String.valueOf(random.nextInt(100)));
- clickProductId = Long.valueOf(String.valueOf(random.nextInt(100)));
+ // 如果是点击操作,随机生成点击的分类ID和产品ID(范围在0到99之间)
+ clickCategoryId = Long.valueOf(String.valueOf(random.nextInt(100)));
+ clickProductId = Long.valueOf(String.valueOf(random.nextInt(100)));
} else if("order".equals(action)) {
- orderCategoryIds = String.valueOf(random.nextInt(100));
+ // 如果是下单操作,随机生成下单的分类ID和产品ID(转换为字符串形式)
+ orderCategoryIds = String.valueOf(random.nextInt(100));
orderProductIds = String.valueOf(random.nextInt(100));
} else if("pay".equals(action)) {
- payCategoryIds = String.valueOf(random.nextInt(100));
+ // 如果是支付操作,随机生成支付的分类ID和产品ID(转换为字符串形式)
+ payCategoryIds = String.valueOf(random.nextInt(100));
payProductIds = String.valueOf(random.nextInt(100));
}
-
- Row row = RowFactory.create(date, userid, sessionid,
+
+ // 使用RowFactory创建一个Row对象,将本次操作相关的所有字段值传入,代表一行模拟数据
+ Row row = RowFactory.create(date, userid, sessionid,
pageid, actionTime, searchKeyword,
clickCategoryId, clickProductId,
orderCategoryIds, orderProductIds,
payCategoryIds, payProductIds);
+
+ // 将生成的Row对象添加到rows列表中,不断积累模拟数据
rows.add(row);
}
}
}
-
+
+ // 将存储了Row对象的列表转换为JavaRDD,使其可以在Spark的分布式环境下进行处理
JavaRDD rowsRDD = sc.parallelize(rows);
-
+
+ // 定义DataFrame的数据结构(Schema),明确每个字段的名称、数据类型以及是否可为空等信息
StructType schema = DataTypes.createStructType(Arrays.asList(
DataTypes.createStructField("date", DataTypes.StringType, true),
DataTypes.createStructField("user_id", DataTypes.LongType, true),
@@ -97,36 +133,64 @@ public class MockData {
DataTypes.createStructField("order_product_ids", DataTypes.StringType, true),
DataTypes.createStructField("pay_category_ids", DataTypes.StringType, true),
DataTypes.createStructField("pay_product_ids", DataTypes.StringType, true)));
-
+
+ // 使用SQLContext基于rowsRDD和定义好的结构schema创建一个DataFrame对象,用于后续的数据操作和分析
DataFrame df = sqlContext.createDataFrame(rowsRDD, schema);
-
- df.registerTempTable("user_visit_action");
+
+ // 将创建好的DataFrame注册为一个临时表,表名为"user_visit_action",方便后续用SQL语句进行查询等操作
+ df.registerTempTable("user_visit_action");
+
+ // 打印DataFrame的第一行数据,用于简单查看模拟生成的数据情况
for(Row _row : df.take(1)) {
- System.out.println(_row);
+ System.out.println(_row);
}
-
+
/**
* ==================================================================
+ * 以下是模拟生成用户基本信息数据的相关代码部分,与上面模拟用户访问行为数据的逻辑类似,但字段不同。
*/
-
+
+ // 清空之前用于存储用户访问行为数据的rows列表,准备存储用户基本信息数据
rows.clear();
+
+ // 定义一个字符串数组,包含了两种性别,用于模拟用户的性别信息
String[] sexes = new String[]{"male", "female"};
+
+ // 循环模拟生成100个用户的基本信息
for(int i = 0; i < 100; i ++) {
+ // 用户ID直接使用循环变量i,简单递增赋值
long userid = i;
+
+ // 生成用户名,格式为"user"加上用户ID
String username = "user" + i;
+
+ // 生成姓名,格式为"name"加上用户ID
String name = "name" + i;
+
+ // 随机生成用户年龄,范围在0到59岁之间
int age = random.nextInt(60);
+
+ // 生成职业信息,格式为"professional"加上一个随机数(范围在0到99之间)
String professional = "professional" + random.nextInt(100);
+
+ // 生成所在城市信息,格式为"city"加上一个随机数(范围在0到99之间)
String city = "city" + random.nextInt(100);
+
+ // 随机选择一个性别,从定义的sexes数组中随机选取
String sex = sexes[random.nextInt(2)];
-
- Row row = RowFactory.create(userid, username, name, age,
+
+ // 使用RowFactory创建一个Row对象,将本次用户基本信息相关的所有字段值传入,代表一行模拟数据
+ Row row = RowFactory.create(userid, username, name, age,
professional, city, sex);
+
+ // 将生成的Row对象添加到rows列表中,积累用户基本信息数据
rows.add(row);
}
-
+
+ // 将存储了用户基本信息Row对象的列表再次转换为JavaRDD,以便后续操作
rowsRDD = sc.parallelize(rows);
-
+
+ // 定义用户基本信息DataFrame的数据结构(Schema),明确每个字段的名称、数据类型以及是否可为空等信息
StructType schema2 = DataTypes.createStructType(Arrays.asList(
DataTypes.createStructField("user_id", DataTypes.LongType, true),
DataTypes.createStructField("username", DataTypes.StringType, true),
@@ -135,13 +199,17 @@ public class MockData {
DataTypes.createStructField("professional", DataTypes.StringType, true),
DataTypes.createStructField("city", DataTypes.StringType, true),
DataTypes.createStructField("sex", DataTypes.StringType, true)));
-
+
+ // 使用SQLContext基于新的rowsRDD和定义好的结构schema2创建一个用于存储用户基本信息的DataFrame对象
DataFrame df2 = sqlContext.createDataFrame(rowsRDD, schema2);
+
+ // 打印用户基本信息DataFrame的第一行数据,用于简单查看模拟生成的数据情况
for(Row _row : df2.take(1)) {
- System.out.println(_row);
+ System.out.println(_row);
}
-
- df2.registerTempTable("user_info");
+
+ // 将用户基本信息的DataFrame注册为一个临时表,表名为"user_info",方便后续用SQL语句进行关联等操作
+ df2.registerTempTable("user_info");
}
-
-}
+
+}
\ No newline at end of file
From 4ab99f27a0397c84f4cbb39daca147dbca50a082 Mon Sep 17 00:00:00 2001
From: qian <2269112473@qq.com>
Date: Tue, 17 Dec 2024 10:25:39 +0800
Subject: [PATCH 21/24] 12
---
..._org_apache_hadoop_hadoop_common_2_6_4.xml | 35 +++++++++++++++++++
...n__org_apache_hadoop_hadoop_hdfs_2_6_4.xml | 34 ++++++++++++++++++
.idea/workspace.xml | 20 ++++++++---
3 files changed, 85 insertions(+), 4 deletions(-)
diff --git a/.idea/libraries/Maven__org_apache_hadoop_hadoop_common_2_6_4.xml b/.idea/libraries/Maven__org_apache_hadoop_hadoop_common_2_6_4.xml
index 7fc38ff..3081dc0 100644
--- a/.idea/libraries/Maven__org_apache_hadoop_hadoop_common_2_6_4.xml
+++ b/.idea/libraries/Maven__org_apache_hadoop_hadoop_common_2_6_4.xml
@@ -1,12 +1,47 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml b/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml
index 7e8e8d4..1dc1b8a 100644
--- a/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml
+++ b/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml
@@ -1,12 +1,46 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 7806d18..0c75d0a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,7 +4,11 @@
-
+
+
+
+
+
@@ -441,7 +445,7 @@
-
+
1529592741848
@@ -590,7 +594,14 @@
1734401354672
-
+
+ 1734401605664
+
+
+
+ 1734401605664
+
+
@@ -724,7 +735,8 @@
-
+
+
From 2fb5570bac82ccc47047b0883f4868850fb5682f Mon Sep 17 00:00:00 2001
From: qian <2269112473@qq.com>
Date: Tue, 17 Dec 2024 10:26:07 +0800
Subject: [PATCH 22/24] 12
---
.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml | 2 +-
src/main/java/cn/edu/hust/session/CategorySortKey.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml b/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml
index 1dc1b8a..fd77afb 100644
--- a/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml
+++ b/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_2_6_4.xml
@@ -21,7 +21,7 @@
-->
-
diff --git a/src/main/java/cn/edu/hust/session/CategorySortKey.java b/src/main/java/cn/edu/hust/session/CategorySortKey.java
index cdc07ee..3e00fcd 100644
--- a/src/main/java/cn/edu/hust/session/CategorySortKey.java
+++ b/src/main/java/cn/edu/hust/session/CategorySortKey.java
@@ -115,5 +115,5 @@ public class CategorySortKey implements Ordered, java.io.Serial
this.clickCount = clickCount;
this.orderCount = orderCount;
this.payCount = payCount;
- }
+ }//
}
From ce450ed046e3066c45a6c05529682f83e7c8df6b Mon Sep 17 00:00:00 2001
From: qian <2269112473@qq.com>
Date: Tue, 17 Dec 2024 10:29:12 +0800
Subject: [PATCH 23/24] 12
---
.../cn/edu/hust/session/CategorySortKey.java | 102 +++++++++++-------
1 file changed, 66 insertions(+), 36 deletions(-)
diff --git a/src/main/java/cn/edu/hust/session/CategorySortKey.java b/src/main/java/cn/edu/hust/session/CategorySortKey.java
index 3e00fcd..8291aa1 100644
--- a/src/main/java/cn/edu/hust/session/CategorySortKey.java
+++ b/src/main/java/cn/edu/hust/session/CategorySortKey.java
@@ -1,119 +1,149 @@
package cn.edu.hust.session;
-
import scala.math.Ordered;
+// CategorySortKey类实现了Ordered接口(用于定义比较规则)以及Serializable接口(用于支持对象的序列化操作)
+// 该类主要用于定义分类排序相关的键,通过比较不同实例中的点击数、订单数和支付数来确定排序规则
public class CategorySortKey implements Ordered, java.io.Serializable {
+ // 用于记录点击次数的成员变量
private Long clickCount;
+ // 用于记录订单次数的成员变量
private Long orderCount;
+ // 用于记录支付次数的成员变量
private Long payCount;
+ // 实现Ordered接口中的compare方法,用于定义两个CategorySortKey实例的比较逻辑
+ // 根据点击数、订单数、支付数依次比较来确定两个实例的大小关系
@Override
public int compare(CategorySortKey categorySortKey) {
- if(clickCount-categorySortKey.getClickCount()!=0)
- {
- return (int) (clickCount-categorySortKey.getClickCount());
- }else if(clickCount-categorySortKey.getClickCount()==0&&orderCount-categorySortKey.getOrderCount()!=0)
- {
- return (int) (orderCount-categorySortKey.getOrderCount());
+ // 首先比较点击数,如果点击数不同,则根据点击数的差值返回比较结果
+ if (clickCount - categorySortKey.getClickCount()!= 0) {
+ return (int) (clickCount - categorySortKey.getClickCount());
+ }
+ // 如果点击数相同,接着比较订单数,若订单数不同,则根据订单数的差值返回比较结果
+ else if (clickCount - categorySortKey.getClickCount() == 0 && orderCount - categorySortKey.getOrderCount()!= 0) {
+ return (int) (orderCount - categorySortKey.getOrderCount());
}
- else if(clickCount-categorySortKey.getClickCount()==0&&orderCount-categorySortKey.getOrderCount()==0&&payCount-categorySortKey.getPayCount()!=0)
- return (int) (payCount-categorySortKey.getPayCount());
+ // 如果点击数和订单数都相同,再比较支付数,若支付数不同,则根据支付数的差值返回比较结果
+ else if (clickCount - categorySortKey.getClickCount() == 0 && orderCount - categorySortKey.getOrderCount() == 0 && payCount - categorySortKey.getPayCount()!= 0)
+ return (int) (payCount - categorySortKey.getPayCount());
+ // 如果点击数、订单数和支付数都相同,则认为两个实例相等,返回0
return 0;
}
+ // 实现Ordered接口中的$less方法,用于判断当前实例是否小于给定的CategorySortKey实例
@Override
public boolean $less(CategorySortKey categorySortKey) {
- if(clickCountcategorySortKey.getClickCount())
- {
+ // 首先比较点击数,如果当前实例的点击数大于给定实例的点击数,则返回true,表示当前实例大于给定实例
+ if (clickCount > categorySortKey.getClickCount()) {
return true;
- }else if(clickCount==categorySortKey.getClickCount()&&orderCount>categorySortKey.getOrderCount())
- {
+ }
+ // 如果点击数相等,接着比较订单数,若当前实例的订单数大于给定实例的订单数,则返回true
+ else if (clickCount == categorySortKey.getClickCount() && orderCount > categorySortKey.getOrderCount()) {
return true;
}
- else if(clickCount==categorySortKey.getClickCount()&&orderCount==categorySortKey.getOrderCount()&&payCount>categorySortKey.getPayCount())
+ // 如果点击数和订单数都相等,再比较支付数,若当前实例的支付数大于给定实例的支付数,则返回true
+ else if (clickCount == categorySortKey.getClickCount() && orderCount == categorySortKey.getOrderCount() && payCount > categorySortKey.getPayCount())
return true;
+ // 如果以上比较都不满足大于的条件,则返回false,表示当前实例不大于给定实例
return false;
}
+ // 实现Ordered接口中的$less$eq方法,用于判断当前实例是否小于等于给定的CategorySortKey实例
@Override
public boolean $less$eq(CategorySortKey categorySortKey) {
- if($less(categorySortKey))
- {
+ // 如果当前实例小于给定实例(通过$less方法判断),则返回true
+ if ($less(categorySortKey)) {
return true;
}
- else if(clickCount==categorySortKey.getClickCount()&&orderCount==categorySortKey.getOrderCount()&&payCount==categorySortKey.getPayCount())
+ // 如果点击数、订单数和支付数都与给定实例相等,则也返回true,表示小于等于
+ else if (clickCount == categorySortKey.getClickCount() && orderCount == categorySortKey.getOrderCount() && payCount == categorySortKey.getPayCount())
return true;
+ // 其他情况返回false
return false;
}
+ // 实现Ordered接口中的$greater$eq方法,用于判断当前实例是否大于等于给定的CategorySortKey实例
@Override
public boolean $greater$eq(CategorySortKey categorySortKey) {
- if($greater(categorySortKey))
- {
+ // 如果当前实例大于给定实例(通过$greater方法判断),则返回true
+ if ($greater(categorySortKey)) {
return true;
- }else if(clickCount==categorySortKey.getClickCount()&&orderCount==categorySortKey.getOrderCount()&&payCount==categorySortKey.getPayCount())
+ }
+ // 如果点击数、订单数和支付数都与给定实例相等,则也返回true,表示大于等于
+ else if (clickCount == categorySortKey.getClickCount() && orderCount == categorySortKey.getOrderCount() && payCount == categorySortKey.getPayCount())
return true;
+ // 其他情况返回false
return false;
}
+ // 实现Ordered接口中的compareTo方法,与compare方法逻辑基本一致,用于定义比较规则
+ // 根据点击数、订单数、支付数依次比较来确定两个实例的大小关系
@Override
public int compareTo(CategorySortKey categorySortKey) {
- if(clickCount-categorySortKey.getClickCount()!=0)
- {
- return (int) (clickCount-categorySortKey.getClickCount());
- }else if(clickCount-categorySortKey.getClickCount()==0&&orderCount-categorySortKey.getOrderCount()!=0)
- {
- return (int) (orderCount-categorySortKey.getOrderCount());
- }
- else if(clickCount-categorySortKey.getClickCount()==0&&orderCount-categorySortKey.getOrderCount()==0&&payCount-categorySortKey.getPayCount()!=0)
- return (int) (payCount-categorySortKey.getPayCount());
+ if (clickCount - categorySortKey.getClickCount()!= 0) {
+ return (int) (clickCount - categorySortKey.getClickCount());
+ } else if (clickCount - categorySortKey.getClickCount() == 0 && orderCount - categorySortKey.getOrderCount()!= 0) {
+ return (int) (orderCount - categorySortKey.getOrderCount());
+ } else if (clickCount - categorySortKey.getClickCount() == 0 && orderCount - categorySortKey.getOrderCount() == 0 && payCount - categorySortKey.getPayCount()!= 0)
+ return (int) (payCount - categorySortKey.getPayCount());
return 0;
}
+ // 获取点击次数的方法
public Long getClickCount() {
return clickCount;
}
+ // 设置点击次数的方法
public void setClickCount(Long clickCount) {
this.clickCount = clickCount;
}
+ // 获取订单次数的方法
public Long getOrderCount() {
return orderCount;
}
+ // 设置订单次数的方法
public void setOrderCount(Long orderCount) {
this.orderCount = orderCount;
}
+ // 获取支付次数的方法
public Long getPayCount() {
return payCount;
}
+ // 设置支付次数的方法
public void setPayCount(Long payCount) {
this.payCount = payCount;
}
+ // 同时设置点击次数、订单次数和支付次数的方法
public void set(Long clickCount, Long orderCount, Long payCount) {
this.clickCount = clickCount;
this.orderCount = orderCount;
this.payCount = payCount;
- }//
-}
+ }
+}
\ No newline at end of file
From 16923a5033d8078cafd41eedbd29b4b43f40f2ee Mon Sep 17 00:00:00 2001
From: qian <2269112473@qq.com>
Date: Tue, 17 Dec 2024 10:32:16 +0800
Subject: [PATCH 24/24] ..
---
...doop_hadoop_mapreduce_client_app_2_6_4.xml | 36 +++++++++++++++++++
.idea/workspace.xml | 31 ++++++++++++----
2 files changed, 60 insertions(+), 7 deletions(-)
diff --git a/.idea/libraries/Maven__org_apache_hadoop_hadoop_mapreduce_client_app_2_6_4.xml b/.idea/libraries/Maven__org_apache_hadoop_hadoop_mapreduce_client_app_2_6_4.xml
index f76a61b..6c5a209 100644
--- a/.idea/libraries/Maven__org_apache_hadoop_hadoop_mapreduce_client_app_2_6_4.xml
+++ b/.idea/libraries/Maven__org_apache_hadoop_hadoop_mapreduce_client_app_2_6_4.xml
@@ -1,12 +1,48 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 0c75d0a..c2aaf03 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,11 +4,7 @@
-
-
-
-
-
+
@@ -445,7 +441,7 @@
-
+
1529592741848
@@ -601,7 +597,28 @@
1734401605664
-
+
+ 1734402339619
+
+
+
+ 1734402339619
+
+
+ 1734402367555
+
+
+
+ 1734402367555
+
+
+ 1734402552309
+
+
+
+ 1734402552309
+
+