UltKit

CSV转Parquet在线转换

CSV容易生成,查询起来却很慢。上传CSV文件,即可得到Apache Parquet文件:每个字段都有对应的列类型,已压缩,可直接导入你使用的分析工具。

数据转换器

或将CSV, TSV, TXT … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    上传CSV文件

    添加一个导出文件,或最多 20 个布局相同的文件,每个不超过 95 MB。分隔符保持“自动检测”即可识别逗号、分号、制表符和竖线。

  2. 2

    保留表头和日期设置

    首行为表头会把表头行作为列名。日期默认使用 ISO 格式,日期列会以统一的形式写入。

  3. 3

    转换为Parquet

    点击转换为 Parquet,然后把 .parquet 文件载入 pandas、DuckDB、Spark 或你的数据仓库。

数据团队为什么要把CSV转成Parquet

Parquet 由 Twitter 和 Cloudera 的工程师于 2013 年创建,借鉴了 Google 在 2010 年 Dremel 论文中描述的列式布局,并于 2015 年成为 Apache 顶级项目。思路很简单:不像 CSV 那样逐行存储表格,而是把同一列的所有值存放在一起。查询四十列中的三列时,只需读取这三列,而且相近的值挨在一起,压缩效果也好得多。

因此分析师会先转换导出文件再加载,数据工程师会向供应方要 Parquet 而不是 CSV,Amazon Athena 和 BigQuery 这类可能按扫描数据量计费的服务,查询成本也会更低。CSV 无法知道 0042 是数字还是编码,而 Parquet 为每一列记录类型,下一个工具就不必猜测。

大型表格:Parquet、CSV与XLSX对比

ParquetCSVXLSX
文件中存储列类型yesno按单元格
只读取查询所需的列yesnono
已压缩yesnoyes
可用文本编辑器阅读noyesno
双击即可用 Excel 打开noyesyes
每个文件的行数无固定上限无固定上限每个工作表 1,048,576 行

CSV转为Parquet后有哪些变化

你能得到什么

  • 只读取所需列,查询更快
  • 文件更小,便于存储和传输
  • 带有结构定义,下一个工具无需猜测
  • 日期统一写成 ISO 格式

需要注意的地方

  • 无法在电子表格或文本编辑器中编辑
  • 数值列中的一个错别字可能让整列变成文本
  • 如果仍有人需要打开,请保留 CSV

CSV与Parquet格式要点

CSV

逗号分隔值

CSV 是一种用于表格的纯文本格式,每一行是一条记录,列之间用逗号分隔。它从计算机早期就开始使用,RFC 4180 对其作了说明,不过许多变体使用分号或制表符,文本编码也各不相同。几乎所有电子表格、数据库和分析工具都能导入和导出 CSV,因此它是在系统之间传输数据的默认格式。CSV 只保存数值,不包含公式、格式、多个工作表或数据类型。

压缩方式
–
透明度
–
动画
–
发布年份
–
CSV 转换器

PARQUET

Apache Parquet

Parquet 是由 Twitter 和 Cloudera 于 2013 年创建、现由 Apache 软件基金会维护的开源列式存储格式。它按列存储数据,压缩率高并带有类型化的模式,因此分析工具只需读取所需的列。它是数据湖以及 Spark、pandas、DuckDB、BigQuery 和 Snowflake 等工具中的标准格式。Parquet 文件是二进制的,无法用文本编辑器或普通电子表格应用打开。

压缩方式
无损
透明度
–
动画
–
发布年份
2013 · Apache Software Foundation (from Twitter and Cloudera)
PARQUET 转换器

当文件不再供人打开,而是供查询扫描时,CSV 就该转成 Parquet:比如每天导入数据湖的导出文件、与分析师共享的数据集,或每次只按几列筛选的日志。

请在转换之前而不是之后清理 CSV:修正表头名称,删除底部的汇总行,并确保每一列只包含一种值。如果源文件是数据库备份而不是 CSV,请先用 SQL 转 CSV。从 JSON 到 SQL 的其他目标格式,都在数据格式转换页面。

CSV转Parquet常见问题

Parquet文件比CSV小多少?

取决于数据本身。重复值多的列(如国家代码、状态或日期)压缩效果很好,而唯一 ID 或自由文本列缩小得较少。Parquet 文件通常只有 CSV 的一小部分大小,但没有可以保证的固定比例。

哪些工具可以读取转换后的.parquet文件?

pandas 的 read_parquet、Polars、DuckDB(直接对文件名执行 SELECT)、Apache Spark,以及 BigQuery、Snowflake、Amazon Athena 和 Redshift Spectrum 等云数据仓库。多数工具还可以把列相同的一个 Parquet 文件夹当作一张表来查询。

列类型是如何确定的?

根据每列的值判断:整数、小数、日期和真/假值会得到对应的类型,内容混杂的列则保持为文本。转换后请检查带前导零的编码,例如 02134 这样的邮政编码;如果必须保留 0,请将其保持为文本。

结构相同的多个CSV文件可以一起转换吗?

可以,一次最多 20 个,每个文件会生成各自的 .parquet 文件。把它们放在同一个文件夹,DuckDB 或 Spark 就能用 sales_*.parquet 这样的通配符一起读取。

不写代码怎么查看Parquet文件的内容?

Excel 和 Google Sheets 无法双击打开 .parquet。可以用 Parquet 转 CSV 把它还原成行,或者如果你习惯写一条 SQL,也可以使用 DuckDB 命令行。