From fd9875baee93c3e2a73a61a78ab3930e5d7fc3c5 Mon Sep 17 00:00:00 2001 From: fly6516 Date: Wed, 26 Mar 2025 10:27:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(HBaseEmpManager):=20=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=9F=B9=E8=AE=AD=E8=AF=BE=E7=A8=8B=E7=9A=84=E5=8F=82=E4=B8=8E?= =?UTF-8?q?=E4=BA=BA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 countTrainingParticipants 方法,用于统计培训课程的参与人数 - 通过 Scan 操作扫描表中的 training_courses 列 - 使用 HashMap 统计每个课程的参与人数 - 打印每个课程的参与人数统计结果 --- src/main/java/HBaseEmpManager.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main/java/HBaseEmpManager.java b/src/main/java/HBaseEmpManager.java index bd54574..80e79f6 100644 --- a/src/main/java/HBaseEmpManager.java +++ b/src/main/java/HBaseEmpManager.java @@ -178,4 +178,28 @@ public class HBaseEmpManager { System.out.println("Most Recently Promoted Employee: " + latestEmp + ", Promotion Date: " + latestDate); table.close(); } + + // 统计培训课程的参与人数 + private static void countTrainingParticipants() throws IOException { + Table table = connection.getTable(TableName.valueOf(TABLE_NAME)); + Scan scan = new Scan(); + scan.addColumn(Bytes.toBytes(CF_TRAINING), Bytes.toBytes("training_courses")); + + ResultScanner scanner = table.getScanner(scan); + Map countMap = new HashMap<>(); + + for (Result result : scanner) { + String courses = Bytes.toString(result.getValue(Bytes.toBytes(CF_TRAINING), Bytes.toBytes("training_courses"))); + for (String course : courses.split(", ")) { + countMap.put(course, countMap.getOrDefault(course, 0) + 1); + } + } + + System.out.println("培训课程统计:"); + for (Map.Entry entry : countMap.entrySet()) { + System.out.println(entry.getKey() + ": " + entry.getValue() + " 人"); + } + + table.close(); + } }