Datasets 文档

云存储

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

云存储

Hugging Face Datasets

Hugging Face Dataset Hub 存储着大量不断增长的数据集,涵盖各种领域和任务。

它不仅仅是云存储:Dataset Hub 是一个平台,通过 git 提供数据版本控制,并提供 Dataset Viewer 来探索数据,是存储 AI 就绪型数据集的绝佳场所。

本指南将展示如何使用 fsspec 的文件系统实现,从其他云存储导入数据。

从云存储导入数据

大多数云存储提供商都提供了 fsspec 的文件系统实现,这使得使用相同的代码从任何云提供商导入数据非常方便。这对于将数据集发布到 Hugging Face 特别有用。

请查看下表,了解一些支持的云存储提供商的示例

存储提供商 文件系统实现
Amazon S3 s3fs
Google Cloud Storage gcsfs
Azure Blob/DataLake adlfs
Oracle Cloud Storage ocifs

本指南将向您展示如何从任何云存储导入数据文件,并将数据集保存在 Hugging Face 上。

假设我们想从云存储中的 Parquet 文件在 Hugging Face 上发布一个数据集。

首先,实例化您的云存储文件系统并列出您想要导入的文件

>>> import fsspec
>>> fs = fsspec.filesystem("...")  # s3 / gcs / abfs / adl / oci / ...
>>> data_dir = "path/to/my/data/"
>>> pattern = "*.parquet"
>>> data_files = fs.glob(data_dir + pattern)
["path/to/my/data/0001.parquet", "path/to/my/data/0001.parquet", ...]

然后,您可以使用例如 Hugging Face 创建一个数据集并导入数据文件

>>> from huggingface_hub import create_repo, upload_file
>>> from tqdm.auto import tqdm
>>> destination_dataset = "username/my-dataset"
>>> create_repo(destination_dataset, repo_type="dataset")
>>> for data_file in tqdm(fs.glob(data_dir + pattern)):
...     with fs.open(data_file) as fileobj:
...         path_in_repo = data_file[len(data_dir):]
...         upload_file(
...             path_or_fileobj=fileobj,
...             path_in_repo=path_in_repo,
...             repo_id=destination_dataset,
...             repo_type="dataset",
...         )

如果您正在寻找更多上传选项,请查看 huggingface_hub 文档中关于文件上传的部分 此处

最后,您现在可以使用 🤗 Datasets 加载该数据集

>>> from datasets import load_dataset
>>> ds = load_dataset("username/my-dataset")
在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.