huggingface上数据集常用格式Parquet及调用

news/2024/9/19 12:39:49/文章来源:https://www.cnblogs.com/litifeng/p/18417108

Parquet格式解释及词解

Parquet,中文通常翻译为帕奎帕凯,是一种高效的列式存储格式

为什么叫Parquet?

  • Parquet这个词源自法语,指的是一种镶木地板。这种地板是由许多小块木块拼凑而成的,每个木块代表一个数据列。这种比喻形象地说明了Parquet格式的存储方式。

Parquet的特点和优势:

  • 列式存储: 不同于传统的行式存储,Parquet将数据按列存储。这样一来,当我们查询特定列的数据时,就只需要扫描这一个列,而不需要扫描整个文件,大大提高了查询效率,尤其在聚合操作(比如求和、平均值等)中表现出色。
  • 压缩: Parquet支持多种压缩算法,可以有效地减少存储空间,降低I/O操作,提高数据读取速度。
  • 嵌套结构: Parquet可以存储复杂的数据结构,比如数组、结构体等,这使得它非常适合存储多样化的数据。
  • 自描述: Parquet文件本身包含了数据的元数据,描述了数据的schema(结构),方便读取和处理。

在机器学习领域,Parquet格式的优势尤其明显:

  • 大规模数据集: Parquet可以高效地处理大规模数据集,这在训练深度学习模型时非常重要。
  • 特征工程: Parquet可以方便地存储和管理各种特征,为机器学习模型提供高质量的数据。
  • 分布式处理: Parquet与Hadoop生态系统紧密集成,可以方便地在分布式环境中进行数据处理。

总结:

Parquet是一种非常适合大规模数据存储和分析的格式。它的列式存储、压缩、嵌套结构和自描述等特性,使得它在机器学习、数据仓库等领域得到了广泛应用。

回到上文提到的Hugging Face数据集:

在Hugging Face上,许多数据集都采用Parquet格式存储。这主要是因为Parquet格式能够高效地存储和管理大规模的文本、图像等数据,方便用户进行后续的自然语言处理、计算机视觉等任务。

如何调用 Parquet 格式

在 Hugging Face 的数据集上,Parquet 格式通常用于存储大规模的图像、文本或表格数据。

如何在 Python 代码中调用 Hugging Face 上的 Parquet 数据集

1. 安装必要的库

pip install datasets

2. 导入库并加载数据集

from datasets import load_dataset# 加载数据集
dataset = load_dataset("ylecun/mnist")

3. 访问数据

# 查看数据集的结构
print(dataset)# 访问训练集
train_dataset = dataset['train']# 访问测试集
test_dataset = dataset['test']# 访问第一个样本
first_sample = train_dataset[0]
print(first_sample)

4. 使用 Parquet 文件

如果你想直接操作 Parquet 文件,可以使用 PyArrow 库:

import pyarrow.parquet as pq# 读取 Parquet 文件
table = pq.read_table("train-00000-of-00001.parquet")# 转换为 Pandas DataFrame
df = table.to_pandas()

详细解释

  • load_dataset 函数: 这个函数是 Hugging Face 的 datasets 库提供的,用于加载各种数据集,包括存储在 Parquet 格式中的数据集。
  • dataset 对象: 加载后的数据集是一个 DatasetDict 对象,包含了训练集、验证集、测试集等。
  • 访问数据: 可以通过索引的方式访问数据集中的每个样本。每个样本通常是一个字典,包含了图像数据、标签等信息。

注意

  • 数据集结构: 不同数据集的结构可能略有不同。你可以通过打印 dataset 对象来查看具体的结构。
  • 数据类型: Parquet 文件可以存储多种数据类型,包括数值型、字符串型、布尔型等。
  • 性能优化: 对于大规模数据集,可以考虑使用 batch 方法进行批量处理,以提高性能。

总结

Hugging Face 提供了一个方便的接口,让我们可以直接加载和使用 Parquet 格式的数据集。通过了解 Parquet 文件的特性以及 Hugging Face datasets 库的使用方法,我们可以高效地处理大规模数据集。

更多信息

  • Hugging Face 文档: https://huggingface.co/docs/datasets/
  • PyArrow 文档: https://arrow.apache.org/docs/python/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/798600.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 297. 二叉树的序列化与反序列化

1.题目基本信息 1.1.题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限…

曾亨瑾第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc/这个作业的目标 发布一篇随便简单介绍自己姓名 曾亨瑾学号 2022329301104一、自我介绍 1.基本信息 大家好,我是电气工程及其自动化(2)班的曾亨瑾,来自广东东莞。 2.兴趣爱好 我喜欢打羽毛球和慢跑(虽然都是…

2024软件工程第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253这个作业的目标 开发类“羊了个羊”消除类小游戏,并借助AIGC技术提高效率学号 052203132项目展示Github地址:https://github.c…

宏定义与特别运用

目录宏定义数值宏常量字符串宏常量用define宏定义注释符号?程序的编译过程预处理中宏替换和去注释谁先谁后?如何写一个可靠的宏函数do-while-zero结构do-while-zero的评价宏定义中的空格宏只能在main函数上面定义吗?宏的作用范围#undef宏替换是在函数调用之前进行.块中进行#…

白云龙期货投资-第六讲

## 价量行情中的配合 1,价涨量增,顺势推动。 2,价量背离,趋势转变 (价与量在相对高位称为顶背离,在下跌末期为底背离。背离后如果想再次上涨或者下跌,一般价格都会出现一个盘整期,而成交量则出现缩量地量期)价量行情中的配合 1,价涨量增,顺势推动。 2,价量背离,趋势…

软件工程结对项目 3:python实现自动生成小学四则运算题目的程序

这个作业属于哪个课程 广工计院计科34班软工这个作业要求在哪里 作业要求团队成员1 庄崇立3122004633团队成员2 罗振烘3122004748这个作业的目标 结对合作完成小学四则运算题目的程序,熟悉项目开发流程,提高团队合作能力一、GitHub地址 二、需求 1.题目:实现一个自动生成小学…

结构、权限修饰符、类

结构、权限修饰符、类 结构(struct:自定义的数据结构) struct student {// 成员变量int number;char name[100];void func(){ // 成员函数(方法)number++;} };// 1. 形参为引用 void func1(student &stu){stu.number = 2000;strcpy_s(stu.name, sizeof(stu.name…

Leetcode 2183. 统计可以被 K 整除的下标对数目

1.题目基本信息 1.1.题目描述 给你一个下标从 0 开始、长度为 n 的整数数组 nums 和一个整数 k ,返回满足下述条件的下标对 (i, j) 的数目:0 <= i < j <= n - 1 且 nums[i] * nums[j] 能被 k 整除。1.2.题目地址 https://leetcode.cn/problems/count-array-pairs-di…

贪心算法-找不重叠的区间段

1.说明 有N个区间片段,查找其中不重叠的片段最大个数。例如(6 8),(2 4),(3 5),(1 5),(5 9),(8 10)这6个片段中,不重叠的片段最大个数为3,分别为(2 4),(6 8),(8 10)。 2.解析 先按照起始位置从小到大进行排序,使用贪心算法使有效片段尽可能小,即结束位置更靠前…

Nuxt Kit 中的页面和路由管理

title: Nuxt Kit 中的页面和路由管理 date: 2024/9/17 updated: 2024/9/17 author: cmdragon excerpt: 摘要:本文介绍了Nuxt Kit中页面和路由管理的高级功能,包括extendPages自定义页面路由、extendRouteRules定义复杂路由逻辑及addRouteMiddleware注册路由中间件。通过这些…

堆的应用

1.需要具备的知识 1.1以顺序存储方式存储完全二叉树 完全二叉树:节点从上到下,从左到右布局的二叉树,如下图所示。完全二叉树可以使用类似数组这种顺序存储的结构存节点,如下图。按照"层级遍历"方式遍历这棵树(还有"前序、中序、后序"遍历方式,这里不做…

Oliver编译安装(Windows10+VisualStudio2022)

Oliver是一个开源的非线性视频编辑器。主要基于Qt和FFmpeg开发。前置条件 电脑上需要的环境Qt(>=5.15) VisualStudio(2022,其他版也可) vcpkg软件安装安装Qt5.15令人糟糕的是,Qt如今变得不太容易安装。自从Qt5.15以后的版本,就取消了离线安装。所有的Qt后序版本就只能通过…