大 CSV 处理方案
1. 当前数据特点
数据/data 下有 9 个 UserBehavior_part_*.csv 文件,每个约 389MB,总量约 3.5GB。文件无表头,字段为:
user_id,item_id,category_id,behavior_type,timestamp
Excel 直接打开会遇到两个问题:
- 单个文件接近 400MB,打开和保存很慢。
- Excel 单表最大行数有限,不适合承载千万级记录。
2. 推荐路线
路线 A:Python 分块读取
使用 pandas read_csv(chunksize=...) 或 Python csv 流式读取。
适合:
- 数据清洗。
- 质量检查。
- 分组聚合。
- 输出指标表。
推荐原因:门槛低,容易写进操作手册,适合实训项目。
路线 B:DuckDB 直接查询 CSV
DuckDB 可以直接对 CSV 和 Parquet 做 SQL 分析,适合本地 OLAP。
适合:
- 快速聚合。
- 多文件查询。
- 生成中间表。
推荐原因:SQL 表达清晰,处理大 CSV 比 Excel 更稳。
路线 C:先转 Parquet
把清洗后的 CSV 转成 Parquet,再做后续分析。
适合:
- 后续多次反复分析。
- 看板和推荐脚本复用。
推荐原因:Parquet 体积更小,读取更快,字段类型更稳定。
3. 推荐实施顺序
- Python 流式读取原始 CSV。
- 完成字段命名、时间转换和异常过滤。
- 输出清洗后的聚合表。
- 如时间允许,再把清洗明细转为 Parquet。
- Excel 只承载汇总结果,不承载原始大数据。
4. 输出产物
代码/清洗/clean.py代码/指标计算/metrics.py其他/数据质量检查/LZ-组6_数据质量检查表_v1.xlsx- 清洗明细大文件外链。
- 聚合指标表,可提交到仓库。
5. 风险控制
- 不把 3.5GB 原始 CSV 提交 Git。
- 脚本内写清数据路径配置。
- 大结果文件走外链登记。
- 所有指标结果保留生成时间和数据来源说明。