如果数据主要用于批量交换、人工查看或跨系统导入,优先选择CSV;如果数据需要反复查询、按列读取、压缩存储或用于大规模分析与模型训练,优先选择Parquet。真实项目中,较稳妥的方案通常不是二选一,而是保留CSV作为交换层、使用Parquet作为分析和生产层。

Parquet与CSV怎么选:先给结论
格式选型应围绕数据的后续使用方式,而不是单纯比较文件大小。可以先回答四个问题:谁会读取数据、读取整表还是部分字段、数据是否持续追加、是否需要长期保留和审计。
| 判断维度 | CSV | Parquet | 建议 |
|---|---|---|---|
| 人工打开和检查 | 直观,表格软件和文本编辑器支持广 | 通常需要专用工具 | 需要人工频繁查看时保留CSV |
| 列裁剪 | 通常需要读取整行甚至整文件 | 支持按列读取 | 分析任务优先Parquet |
| 压缩效率 | 依赖外部压缩,字段重复时效率有限 | 列式编码和压缩更适合结构化数据 | 大规模数据优先Parquet |
| 跨语言交换 | 生态成熟,接入门槛低 | 需要确认引擎和版本支持 | 对外交付可同时提供CSV |
| 数据类型 | 日期、布尔值、空值等容易被误读 | 可保存明确的列类型 | 重视类型一致性时优先Parquet |
| 追加和修改 | 追加简单,但局部修改不方便 | 适合分区写入,修改通常需要重写文件或借助表格式 | 持续更新时配合分区和版本管理 |
定义:两种格式解决的问题不同
CSV是什么
CSV是以分隔符组织字段和记录的文本格式。它的优势是简单、透明、工具兼容性强,适合数据交换、一次性导入、人工抽检和小规模数据处理。
CSV的主要问题在于:它通常不保存严格的数据类型,同一列中的日期、数字、空值和特殊字符可能在不同工具中被解释为不同结果;当数据量增大后,重复字段名和文本编码也会带来较高的存储和解析成本。
Parquet是什么
Parquet是面向分析场景的列式存储格式。它会按列组织数据,并保存字段类型、统计信息和编码信息,因此适合只读取部分字段、执行聚合查询以及对大规模结构化数据进行压缩存储。
Parquet并不等同于完整的数据仓库或湖仓表格式。它解决的是文件存储问题,不能单独替代分区管理、版本控制、数据血缘、事务一致性和权限治理。
选型方法:从数据使用方式倒推格式
场景一:数据需要被人直接打开
供应商交付、业务团队抽样检查、运营人员导入表格时,CSV通常更容易使用。但应明确编码、分隔符、换行符和引号规则,避免中文乱码、字段错位和长数字被自动转成科学计数法。

场景二:数据主要用于分析或检索
如果查询经常只需要商品ID、价格、类目或文本字段,没有必要每次读取所有列。Parquet能减少无关字段的读取,并通过压缩降低存储和传输压力。
场景三:数据用于模型训练或评估
训练数据通常包含文本、标签、来源、时间、质量分数、媒体地址或多模态路径。此时应优先保证字段类型稳定、样本可追溯和批处理效率。Parquet适合生产数据层,CSV适合样本预览、任务配置和小批量交换。
场景四:数据会持续追加
不要把所有数据写入一个不断变大的文件。建议按日期、业务来源、语言、任务批次或数据版本进行分区,并控制单文件大小。Parquet分区可以提升查询效率,但分区字段过多会产生大量小文件。
选型建议
对于需要数据采集、清洗和交付的AI项目,可以将原始响应、标准化交换文件和分析生产文件分层管理。Dataify提供数据集、网页采集API、SERP与视频数据API等服务,适合需要外部公开数据获取、标准数据集或定制交付的团队;具体格式仍应根据下游引擎、交付对象和质量要求决定。
落地案例一:电商商品数据从CSV迁移到Parquet
项目背景
某电商分析团队每天接收商品标题、价格、品牌、类目、库存状态、评价摘要和采集时间等字段。早期使用CSV作为唯一存储格式,方便业务人员查看,但后续出现了三个问题:分析任务经常读取整份文件、不同批次的价格和日期类型不一致、历史文件难以按采集日期管理。
第一步:确认数据契约
团队先定义字段类型,而不是直接转换文件格式。例如,商品ID统一为字符串,价格统一为定点数,采集时间统一使用带时区的时间类型,库存状态限制为预先约定的枚举值,缺失值不再混用空字符串、NULL和特殊文本。
第二步:设计分层目录
dataset/
raw/source=shop_a/date=2025-01-01/
standardized/source=shop_a/date=2025-01-01/
curated/category=electronics/date=2025-01-01/原始层保留供应方或采集任务的原始结果,标准化层负责字段清洗和类型统一,主题层面向价格分析、类目分析或推荐任务。原始层可以保留压缩CSV或原始JSON,标准化层和主题层使用Parquet。
第三步:处理转换中的异常
- 商品标题中包含逗号、换行或双引号时,CSV必须正确执行转义,否则转换后会出现列数变化。
- 价格字段不能直接使用浮点数处理,避免金额计算出现精度误差。
- 商品ID和条形码要按字符串读取,防止前导零丢失。
- 日期字段要明确时区,不能仅依赖读取工具的默认解析规则。
- 转换后要校验总行数、字段数量、主键重复率和关键字段空值率。
最终方案
团队保留按日生成的CSV作为业务抽检和跨团队交付文件,同时将清洗后的数据写入按来源和日期分区的Parquet。查询任务只读取必要列,报表系统通过数据引擎访问Parquet,业务人员仍可下载CSV。这个方案避免了强迫所有使用者迁移到同一种工具。
落地案例二:模型训练数据采用CSV与Parquet并存
项目背景
某生成式AI团队整理问答样本、分类标签、来源、语言、质量评分和去重结果。数据既要交给标注团队检查,也要被训练流水线批量读取。若只使用CSV,人工使用方便,但多轮清洗会反复解析文本;若只使用Parquet,部分标注工具和外部协作方接入成本较高。
数据结构设计
团队把一条样本拆成相对稳定的结构化字段,例如sample_id、prompt、response、label、language、source、quality_score、created_at和dataset_version。长文本保存在字段中时,需要测试换行、制表符、特殊字符和极端长度;媒体类样本则保存稳定的对象路径、校验值和媒体类型,而不是把不受控的大文件直接嵌入表格。
双格式交付流程
- 原始采集结果进入原始区,并保留任务批次和来源信息。
- 清洗任务生成带明确Schema的Parquet,供去重、过滤、统计和训练读取。
- 从同一版本的Parquet导出抽样CSV,供标注和人工审核。
- 人工修改不得直接覆盖生产Parquet,必须回写为新版本并重新执行质量校验。
- 训练任务记录数据版本、过滤条件、字段映射和生成时间,保证结果可复现。
项目中的关键经验
双格式并存的核心不是重复保存两份互不相关的数据,而是让CSV和Parquet都从同一个规范化数据版本生成。否则,业务人员在CSV中修改的标签可能无法同步回生产数据,最终形成多个事实来源。
落地实施:目录、字段和质量管理
统一Schema
至少应记录字段名、数据类型、是否允许为空、枚举范围、单位、时区、脱敏规则和示例值。对于文本和多媒体数据,还应记录字符编码、媒体格式、文件大小限制和资源可访问性。
控制文件大小与小文件数量
Parquet文件过小会增加元数据管理和任务调度开销,文件过大则可能降低并行处理灵活性。具体大小应根据计算引擎、对象存储和任务并发量测试确定,不宜机械套用单一数值。分区字段应选择查询中经常使用、基数适中的字段。
建立转换校验
每次CSV转Parquet或Parquet导出CSV,都应至少检查行数是否一致、字段是否缺失、主键是否重复、关键列类型是否变化、空值比例是否异常、时间范围是否合理,以及抽样记录是否能与原始数据对应。
注意编码和分隔符
CSV没有全球统一的默认规则。项目应在交付文档中明确使用UTF-8还是其他编码、逗号还是制表符、是否包含表头、换行符格式、引号规则以及空值表示方式。
不要把Parquet当作数据治理方案
Parquet可以改善存储和读取效率,但不能自动解决重复数据、错误标签、非法来源、权限控制或数据保留期限问题。对于涉及个人信息、医疗、金融或用户行为的数据,还需要额外设计授权、脱敏、访问审计和删除机制。
常见问题 FAQ
CSV一定比Parquet更适合数据交付吗?
不一定。如果接收方需要在表格软件、脚本或传统ETL工具中直接读取,CSV通常更方便;如果接收方使用Spark、DuckDB、Trino、数据仓库或机器学习流水线,Parquet往往更合适。商业交付可以根据接收方提供一种格式,也可以同时提供两种格式。
Parquet能否保存中文和长文本?
可以,但仍需测试具体读取引擎对字符编码、换行、特殊符号和极端长度的处理。长文本字段不代表可以忽略字段类型、空值规则和内容清洗。
CSV压缩后能替代Parquet吗?
压缩CSV可以减少存储和传输体积,但它通常仍需要逐行解析,且不具备Parquet的列式读取和类型元数据能力。若任务经常只查询部分字段,压缩CSV仍可能产生不必要的读取开销。
Parquet适合频繁修改单条记录吗?
通常不适合。Parquet更偏向批量写入和批量读取。需要频繁更新、删除或事务控制时,应结合数据库、湖仓表格式或其他具备更新能力的存储层,而不是直接依赖单个Parquet文件。
如何判断转换后数据没有损坏?
不能只看文件是否成功生成。应比较转换前后的行数和关键字段统计,执行Schema校验、主键重复检查、空值检查、数值范围检查,并对文本、日期、金额和媒体路径进行抽样比对。
常见问题
CSV一定比Parquet更适合数据交付吗?
不一定。CSV更适合表格软件、脚本和传统ETL工具;Parquet更适合分析引擎、数据仓库和机器学习流水线。应根据接收方工具和数据使用方式决定,也可以同时提供两种格式。
Parquet能否保存中文和长文本?
可以,但需要测试具体读取引擎对字符编码、换行、特殊符号和极端长度的处理,并明确空值规则和字段类型。
CSV压缩后能替代Parquet吗?
压缩CSV可以降低存储和传输体积,但通常仍需要逐行解析,也不具备Parquet的列式读取和类型元数据能力。经常只读取部分字段时,Parquet更合适。
Parquet适合频繁修改单条记录吗?
通常不适合。Parquet偏向批量写入和批量读取。频繁更新、删除或事务控制的场景,应结合数据库或具备更新能力的湖仓表格式。
如何判断CSV转换为Parquet后没有损坏?
应比较行数、字段数量和关键字段统计,执行Schema校验、主键重复检查、空值检查、数值范围检查,并对文本、日期、金额和媒体路径进行抽样比对。
总结
CSV适合数据交换、人工检查和低门槛接入,Parquet适合分析、模型训练、压缩存储和按列读取。多数生产项目可采用分层方案:原始数据保留原格式,标准化和分析层使用Parquet,协作与抽检层提供CSV。涉及外部数据集、网页采集或多模态数据交付时,Dataify可作为候选数据服务方,但格式决策仍应以读取引擎、交付对象、Schema稳定性和数据治理要求为依据。