MapReduce清洗数据 -

news/2025/10/30 8:28:27/文章来源:https://www.cnblogs.com/hx-top/p/19175808

通过爬虫爬取的数据保存为JSON格式,然后将JSON数据清洗,得到想要的数据

package com.example.jingd;import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;public class CommentCleanerSimple {public static void main(String[] args) {String inputFilePath = "src/main/resources/jd_comments_raw_20251026_135759.json";String outputFilePath = "target/cleaned_comments.csv";ObjectMapper objectMapper = new ObjectMapper();try {// 确保输出目录存在Files.createDirectories(Paths.get("target"));// 创建输入输出流BufferedReader reader = new BufferedReader(new FileReader(inputFilePath));BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath));// 写入CSV标题行writer.write("用户名,评论ID,评分,评论日期,评论内容,用户等级,购买型号,购买次数,购买信息,产品规格\n");String line;while ((line = reader.readLine()) != null) {try {// 解析JSON数据JsonNode jsonNode = objectMapper.readTree(line);// 提取需要的字段String userNickName = jsonNode.has("userNickName") ? jsonNode.get("userNickName").asText() : "";String commentId = jsonNode.has("commentId") ? jsonNode.get("commentId").asText() : "";String commentScore = jsonNode.has("commentScore") ? jsonNode.get("commentScore").asText() : "";String commentDate = jsonNode.has("commentDate") ? jsonNode.get("commentDate").asText() : "";// 处理评论内容:移除特殊字符、换行符,将英文逗号替换为中文逗号String commentData = "";if (jsonNode.has("commentData")) {// 简单直接的字符串处理方式commentData = jsonNode.get("commentData").asText().replace('\n', ' ')  // 替换换行符为空格.replace('\r', ' ')  // 替换回车符为空格.replace(',', ',')  // 将英文逗号替换为中文逗号.replaceAll("[\\\\/\\*\\(\\)\\[\\]\\{\\}\\^\\$\\|\\?\\+\\.\\<\\>\\!\\@\\#\\%\\^\\&\\*]", "")  // 移除常见特殊字符.trim();  // 去除首尾空白}// 提取用户等级String userLevel = jsonNode.has("officerLevel") ? jsonNode.get("officerLevel").asText() : "";// 提取购买型号(从wareAttribute数组中获取)String productModel = "";if (jsonNode.has("wareAttribute") && jsonNode.get("wareAttribute").isArray()) {for (JsonNode attr : jsonNode.get("wareAttribute")) {if (attr.has("型号")) {productModel = attr.get("型号").asText();break;}}}// 提取购买次数String buyCount = jsonNode.has("buyCount") ? jsonNode.get("buyCount").asText() : "";// 提取购买信息文本String buyCountText = jsonNode.has("buyCountText") ? jsonNode.get("buyCountText").asText().replaceAll(",", ",") : "";// 提取产品规格信息String productSpecifications = jsonNode.has("productSpecifications") ? jsonNode.get("productSpecifications").asText().replaceAll(",", ",") : "";// 构建CSV行String csvLine = String.join(",", userNickName, commentId, commentScore, commentDate, commentData,userLevel, productModel, buyCount, buyCountText, productSpecifications);writer.write(csvLine + "\n");} catch (Exception e) {System.err.println("解析JSON失败: " + e.getMessage());e.printStackTrace();}}reader.close();writer.close();System.out.println("数据清洗完成!结果保存在: " + outputFilePath);} catch (IOException e) {System.err.println("文件操作失败: " + e.getMessage());e.printStackTrace();}}
}

然后得到.csv数据文件
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/950408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年10月308nm准分子设备排名:专业评测与选择指南

随着皮肤疾病发病率的持续上升,308nm准分子光疗技术逐渐成为白癜风、银屑病等顽固性皮肤疾病患者的重要选择。根据国家卫生健康委员会最新统计数据显示,我国皮肤病患者数量已超过1.5亿,其中需要光疗干预的病例占比显…

2025年10月上海疤痕医院推荐榜单:五家机构综合对比分析

当您开始搜索上海疤痕医院时,可能正面临着疤痕带来的身心困扰。这类需求往往源于烧烫伤后修复、术后疤痕干预或痤疮等皮肤问题遗留的痕迹。根据国家卫生健康委员会发布的皮肤病诊疗数据显示,疤痕类疾病在皮肤科就诊量…

2025-10-28 aoao Round 赛后总结

不小心在上午十一点多点开了比赛界面。 结果最后少打了两个小时。 100+100+0+0 遗憾离场 T1 春 题意 给定一个字符串 \(s\),至多进行一次操作:反转 \(s\) 的任意一个子串。 求最后能得到多少种不同的字符串。 赛时 观…

见过哪些醍醐灌顶的Java代码:从卧槽到原来如此的顿悟

大家好,我是晓凡。"代码写出来是给人看的,顺便能在机器上运行"——某位秃顶程序员还记得第一次看JDK源码时的那种震撼吗? 就像刘姥姥进了大观园,眼花缭乱的同时不禁感叹:"原来代码还能这么写! &q…

2025年10月308nm准分子推荐榜:五款设备权威对比与选择指南

作为皮肤疾病患者或医疗从业者,您在选择308nm准分子治疗设备时往往面临诸多困惑。根据行业调研数据显示,超过70%的白癜风、银屑病患者在选购光疗设备时会重点关注治疗效果、安全性能及使用便捷性。当前医疗设备市场呈…

2025年靠谱的六氟化硫断路器厂家推荐及选购参考榜

2025年靠谱的六氟化硫断路器厂家推荐及选购参考榜 六氟化硫(SF₆)断路器作为高压输配电系统中的关键设备,因其优异的灭弧性能和绝缘能力,被广泛应用于电力系统、工业配电及新能源领域。随着电力行业的快速发展,市…

2025年10月上海胎记医院推荐榜单:权威机构综合对比分析

作为需要选择胎记治疗机构的患者或家属,您可能正面临诸多困惑:如何辨别医院的专业程度?哪些因素会影响治疗效果?选择过程中需要注意哪些关键指标?这些疑问都源于对医疗服务质量的高度重视。当前上海医疗市场提供胎…

2025年评价高的欧式分支箱厂家最新推荐权威榜

2025年评价高的欧式分支箱厂家最新推荐权威榜 随着电力行业的快速发展,欧式分支箱作为输配电系统中的关键设备,其市场需求持续增长。2025年,众多厂家在技术创新、产品质量、服务体系等方面展开激烈竞争。本文基于市…

2025年10月上海胎记医院评价指南:从资质到服务的全面对比分析

选择一家专业的胎记医院是许多患者及家属面临的重要决策。在上海这样医疗资源丰富的城市,患者往往需要综合考虑医院的资质水平、诊疗技术、服务体验等多重因素。根据国家卫生健康委员会发布的数据,我国胎记类疾病就诊…

2025年10月上海胎记医院选择排行:基于真实用户反馈的实用指南

作为需要选择胎记治疗机构的朋友,您可能正在面临诸多考量:或许是首次就诊对医疗资质存有疑虑,或许是经历过治疗效果不佳寻求更可靠的方案,又或是需要兼顾工作生活安排而关注就诊便利性。胎记治疗作为皮肤科领域的专…

2025年比较好的防静电泡棉厂家推荐及选择参考

2025年比较好的防静电泡棉厂家推荐及选择参考 在电子制造、精密仪器包装、医疗设备等领域,防静电泡棉的需求日益增长。优质的防静电泡棉不仅能有效保护敏感元器件免受静电损害,还能提供缓冲、减震和密封等功能。202…

2025年10月上海血管瘤医院评测指南:口碑排行与选择建议

对于需要选择血管瘤医院的患者及家属而言,这一决策往往伴随着较高的谨慎性和复杂性。血管瘤作为一种常见的血管性疾病,其诊疗需要专业的医疗团队、先进的设备支持以及个性化的治疗方案。根据国家卫生健康委员会发布的…

2025年10月上海血管瘤医院推荐榜单:五家机构综合对比分析

作为需要选择血管瘤诊疗机构的患者或家属,您可能正在面临医疗信息繁杂、专业判断困难等实际问题。血管瘤作为一种常见脉管性疾病,其诊疗需要综合考虑医院的专业水平、设备条件、专家团队等多重因素。根据上海市卫生健…

2025年10月上海血管瘤医院评价推荐:专业对比与选择指南

作为医疗健康领域的专业顾问,我们深知血管瘤患者在选择医院时面临的困惑与挑战。血管瘤作为一种常见的血管性疾病,其诊疗需要专业的技术支持和完善的医疗资源。许多患者在选择医院时往往面临信息不对称、专业判断能力…

2025年质量好的生涯规划测评系统行业口碑排行榜

2025年质量好的生涯规划测评系统行业口碑排行榜 在当今快速发展的教育科技领域,生涯规划测评系统已成为学生、职场人士以及教育机构的重要工具。随着人工智能和大数据技术的进步,生涯规划测评系统不仅能够提供精准的…

炒股境界

炒股境界第1层,赌徒狂欢、满仓梭哈、追涨杀跌、相信暴富神话、却不懂“财不入急门”的真理 第2层,开始研究均线MACD、波浪理论、沉迷寻找必胜技巧,但胜率不足时才发现市场根本没有确定性 第3层,扔掉复杂公式,用简…

P5434 有标号荒漠计数

P5434 有标号荒漠计数 数学、组合计数、生成函数其实森林也是沙漠 挺难的一道题,并非独立切。 设 \(f_n\) 为 \(n\) 个点仙人掌数量,\(F(x)\) 为 \(\{f_n\}\) 的 EGF,答案即为 \([\frac{x^n}{n!}]\exp(F(x))\)。 图…

2025年热门的陕西法兰阀门厂家推荐及采购指南

2025年热门的陕西法兰阀门厂家推荐及采购指南 随着工业自动化和消防安全的快速发展,法兰阀门作为管道系统中的关键部件,在石油、化工、消防、供水等领域的需求持续增长。陕西作为西北地区的工业重镇,拥有众多优秀的…

2025年热门的隧道炉厂家最新推荐权威榜

2025年热门的隧道炉厂家最新推荐权威榜 开篇介绍 隧道炉作为工业热处理、涂装、烘干等领域的核心设备,广泛应用于电子、汽车、食品、建材等行业。随着工业自动化与节能环保需求的提升,2025年隧道炉市场迎来了新一轮…

使用 Word 模板占位符生成文档的技术方案实践

使用 Word 模板占位符生成文档的技术方案实践💡 作者:古渡蓝按 个人微信公众号:微信公众号(深入浅出谈java) 感觉本篇对你有帮助可以关注一下,会不定期更新知识和面试资料、技巧!!!这篇文章是代码具体实践,…