数据集文档

云存储

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

云存储

Hugging Face Datasets

Hugging Face Dataset Hub 汇集了不断增长的数据集,涵盖各种领域和任务。

它不仅仅是云存储:Dataset Hub 是一个平台,它借助 git 提供数据版本控制,并提供数据集查看器来探索数据,使其成为存储 AI 就绪型数据集的绝佳场所。

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

从云存储导入数据

大多数云存储提供商都有 fsspec FileSystem 实现,这对于使用相同的代码从任何云提供商导入数据都非常有用。这对于在 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 上