数据集文档
云存储
加入 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")