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

实验7-1:自媒体运营分析-数据清洗与预处理 实验报告

一、实验目的

本实验基于全班同学在多平台发布的作品互动数据,使用助睿ETL完成数据清洗与预处理,输出两张核心数据表,为后续特征工程与可视化分析奠定基础。

通过本实验,应掌握以下内容:

  • 理解数据清洗在数据分析流程中的基础性与必要性
  • 使用助睿ETL完成多源数据的过滤、填充、聚合等预处理操作
  • 掌握分支处理的设计思路:全平台概况统计与重点平台深度分析分流
  • 输出两张规范数据表,支撑仪表盘不同模块的数据需求

二、实验环境

项目

说明

实验平台

助睿在线实验平台(https://lab.guilian.cn/)

数据处理工具

助睿ETL(数据集成平台)

课程名称

商业数据分析

三、实验步骤

3.1步骤1:创建目标表

在助睿ETL中创建两张目标表,分别用于存储全平台汇总数据和重点平台明细数据。

1summary_all_platforms(全平台概况表)

该表用于存放所有平台的汇总数据,字段设计如下:

字段

类型

说明

crawl_date

DATE

采集日期

platform

VARCHAR(20)

平台名称

content_count

INT

作品数量

total_views

INT

总浏览数

total_likes

INT

总点赞数

total_favorites

INT

总收藏数

total_shares

INT

总分享数

total_coins

INT

总投币数(仅B站)

total_recommend

INT

总推荐数(仅微信)

total_likes_zhihu

INT

总喜欢数(仅知乎)

total_approvals

INT

总赞同数(仅知乎)

2content_analysis(内容分析表)

该表作为实验二的输入,字段与原始数据基本一致,但只包含B站和CSDN的有效记录:

字段

类型

说明

date

DATE

采集日期

author_name

VARCHAR(100)

作者昵称

title

VARCHAR(500)

作品标题

platform

VARCHAR(20)

B站 / CSDN

likes

INT

点赞数

favorites

INT

收藏数

shares

INT

分享数

coins

INT

投币数(仅B站)

views

INT

播放量/阅读量

url

VARCHAR(500)

作品链接

total_interaction

INT

互动总数

has_best

TINYINT(1)

是否含保姆级

has_lowcode

TINYINT(1)

是否含零代码

has_practice

TINYINT(1)

是否含实战

has_tutorial

TINYINT(1)

是否含教程/指南

has_pit

TINYINT(1)

是否含踩坑

3.2步骤2:导入原始数据

将助睿ETL公共空间的「自媒体作品数据明细.csv」导入到自己的文件库中,作为数据源输入。该数据集包含同学们在6月8日-6月15日提交的作品互动数据,涵盖B站、CSDN、微信、知乎、小红书等多个平台。

3.3步骤3:全平台聚合统计(分支1

这是第一个数据分支,用于生成全平台概况数据:

  1. 拖入「CSV文件输入」组件,选择导入的自媒体作品数据明细.csv
  1. 拖入「排序记录」组件,按日期和平台排序
  1. 拖入「分组」(聚合)组件:
  • 分组字段:日期、平台
  • 聚合方式:所有数值字段全部取求和
  • 作品数量使用COUNT计数
  1. 输出到 summary_all_platforms 表

3.4步骤4:过滤记录(分支2

这是第二个数据分支,用于筛选有效数据做深度分析。使用「过滤记录」组件,设置以下条件组合:

sql
(平台 = B站 AND 浏览数量 > 0)
OR
(平台 = CSDN AND 浏览数量 > 0)

过滤逻辑说明:

  • 只保留B站和CSDN两个平台(微信、知乎等平台浏览量大量缺失,无法支撑有效分析)
  • 删除两个平台中浏览量为0的记录,聚焦真正产生用户互动的作品

3.5步骤5:填充缺失值

在过滤后的分支中,拖入「替换NULL值」组件:

  • 值替换为:未知
  • 填充空字符串:勾选
  • 对作者名称、作品标题等可能存在空值的字段统一填充为未知

3.6步骤6:字段选择

拖入「字段选择」组件,只保留分析需要的字段,其余全部剔除:

保留字段:date, author_name, title, platform, likes, favorites, shares, coins, views, url

注意事项:

  • 剔除source_file等采集批次标记字段(分析用不到)
  • 保留coins(投币数量)作为B站特有的互动指标
  • 日期字段需重命名为date(与目标表字段名一致)

3.7步骤7:输出目标表

拖入「表输出」组件,将处理后的数据输出到 content_analysis 表。

3.8步骤8:执行转换流

完整的转换流结构如下,点击运行执行:

CSV文件输入
├─→ 排序记录 → 全平台聚合统计 → 全平台概况表输出 (summary_all_platforms)
└─→ 过滤记录 → 替换NULL值 → 字段选择 → 内容分析表输出 (content_analysis)

四、遇到的问题及解决

4.1问题1:聚合字段找不到

错误信息:Aggregate subject field [content_count] couldn't be found!

问题原因:在聚合组件中错误地选择了content_count作为聚合字段,但原始CSV数据中根本没有这个字段。content_count是目标表的输出字段名,不是输入字段。

解决方法:

  • 作品数量应该通过对任意非空字段(如title)做COUNT计数得到
  • 将输出别名设置为content_count
  • 其他数值字段(浏览量、点赞数等)使用SUM求和

4.2问题2:字符串字段无法求和

错误信息:couldn't convert String to number

问题原因:对title等字符串类型字段使用了SUM聚合方式,字符串无法进行数值求和运算。

解决方法:

  • 字符串字段只能用于COUNT(计数)聚合,不能用于SUM(求和)
  • 统计作品数量时,选择COUNT方式而非SUM

4.3问题3:字段名不匹配

错误信息:Unknown column 'crawl_date' in 'field list'

问题原因:数据流中的日期字段名是crawl_date,但目标表content_analysis中的日期字段名是date,字段名不匹配导致插入失败。

解决方法:在「字段选择」组件中,将日期字段重命名为date,确保输出字段名与目标表字段名完全一致。

4.4问题4:数据类型不匹配

错误信息:There was a data type error: the data type does not correspond to value meta [Date]

问题原因:CSV文件输入时,日期字段被识别为字符串类型,但目标表中该字段是Date类型,写入时类型不匹配。

解决方法:在「字段选择」组件中,将date字段的数据类型从String改为Date,并指定正确的日期格式(如yyyy-MM-dd)。

五、实验总结

5.1实验成果

本次实验成功完成了自媒体运营数据的清洗与预处理工作,输出了两张核心数据表:

  • summary_all_platforms:全平台概况数据表,包含各平台每日的作品数量、总浏览、总点赞等汇总指标
  • content_analysis:重点平台内容分析表,筛选出B站和CSDN的有效作品记录,为后续特征工程和深度分析奠定基础

5.2核心知识点

  • 多条件过滤:使用AND/OR组合平台过滤与有效记录判定,一个组件完成双重过滤
  • 缺失值处理:统一填充默认值未知,避免计算异常
  • 分支处理设计:一份原始数据分两条支路处理,分别满足全平台概况和深度分析两种需求
  • 宽表设计:一次清洗、多次使用,一张表支撑全部后续分析
  • 字段类型转换:数据处理过程中需注意字段类型和名称的一致性,避免写入数据库时报错

5.3心得体会

通过本次实验,我深刻理解了数据清洗在数据分析流程中的重要性。原始数据往往存在各种问题,如平台冗余、无效记录、字段缺失等,如果不经过清洗直接使用,会严重影响后续分析结果的准确性。

同时,分支处理的设计思路也让我受益匪浅——针对不同的分析需求,对同一份原始数据采用不同的清洗策略,这样既能保证全平台统计的完整性,又能确保重点平台分析的有效性。这种设计思想在实际工作中具有很强的实用价值。

此外,实验过程中遇到的各种报错也让我积累了宝贵的排错经验,学会了如何根据错误日志定位问题、分析原因并找到解决方案。这些问题解决能力对于数据工程师来说是非常重要的基本功。

http://www.jsqmd.com/news/1139020/

相关文章:

  • X4Val:面向多源非配对数据的鲁棒模型评估方法论
  • 2026年6月亲测:卓廷金税预警敏感
  • Linux 移动重命名 mv、删库跑路 rm 与打包压缩 tar 核心命令通关秘籍
  • LangChain:Loop Engineering才是未来核心竞争力!
  • 电力负荷预测和能源调度能用AI吗?深度解析AI Agent在新型电力系统中的应用实战与主流方案盘点
  • OpenAI GPT-5.6明日发布,借对手危机实现降维打击,AI竞争迈入实用主义时代
  • 单片机程序常用的消息队列
  • 计算机毕业设计之jsp旅行社网站的设计与实现
  • Trae:面向电子取证的可编程自动化代理与Skills机制解析
  • SKILL.md 文件怎么写?(手把手教程)
  • 刚性编队控制:去中心化无人机集群的SE(3)分布式实现
  • 全网资源下载终极指南:一键获取微信视频号、抖音、快手等平台内容
  • 36岁大龄前端转行AI大模型应用开发的思考
  • 2026高性价比数字人平台怎么选?从预算、口型、批量出片到商用权限一次讲清(CSDN投稿优化版)
  • 无源RFID标签在贵重固定资产远程监控中的应用边界与性能测试
  • 30天爆卖超500万元,这家深圳工具品牌让欧美巨头坐不住了 | 品牌出海
  • Krea2高清成片链升级:原生4K/6K AI绘画技术解析与实践
  • ROP-RAS3:面向嵌入式平台的在线POMDP长时域规划框架
  • NOV Chart for .NET 2026.1使用调色板填充模式自定义图表外观
  • 水面无人艇无GPS协同绕靶:分布式感知与共识控制实战
  • 企业AI问答系统为啥用不了?RAG链路优化全攻略!
  • 别再走弯路!2026亲测好用的AI写作辅助软件|实测避坑硬核版
  • 开发者平台和国产AI基础设施的叙事
  • 脑后二维码技术解析:从图像生成到AR特效的实现原理
  • 百年IBM:从打孔卡到量子计算,一部跨越世纪的科技史诗
  • 分布无关的谱风险控制:自动驾驶安全规划新范式
  • VXLAN + EVPN 分布式部署
  • 光伏储能一体机系统设计:从5kW户用到500kW工商业的3种典型配置方案
  • 开发者选择转向工作流,云服务提供商如何在开发各阶段破局?
  • 视觉语言模型驱动的机器人安全动作过滤框架