详细内容或原文请订阅后点击阅览
CSV、Parquet 与 Arrow:存储格式解释
相同的数据,不同的格式,性能差异很大。
来源:KDnuggets简介
Hugging Face Datasets 提供了使用单行代码加载数据集的最简单方法之一。 这些数据集通常以 CSV、Parquet 和 Arrow 等格式提供。 虽然这三种格式都是为存储表格数据而设计的,但它们在后端的操作不同。每种格式的选择决定了数据的存储方式、加载速度、需要多少存储空间以及数据类型的保存效率。随着数据集变得越来越大、模型越来越复杂,这些差异变得越来越显着。在本文中,我们将了解 Hugging Face 数据集如何与 CSV、Parquet 和 Arrow 配合使用,究竟是什么让它们在磁盘和内存中有所不同,以及每种数据集何时适合使用。那么,让我们开始吧。
1.CSV
CSV 代表逗号分隔值。它只是文本,每行一行,列用逗号(或制表符)分隔。几乎所有工具都可以打开它,即 Excel、Google Sheets、pandas、数据库等。它非常简单且可互操作。
示例:
姓名、年龄、城市
Hugging Face 将其视为基于行的格式,这意味着它会逐行读取数据。虽然这对于小型数据集来说是可以接受的,但性能会随着扩展而恶化。此外,还有一些其他限制,例如:
无显式模式:由于所有数据都以文本格式存储,因此每次加载文件时都需要推断类型。如果数据不一致,可能会导致错误。
大尺寸和慢 I/O:文本存储会增加文件大小,并且从文本中解析数字会占用 CPU 资源。
