Datasets 文档
云存储
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
云存储
Hugging Face 数据集
Hugging Face 数据集中心拥有不断增长的、涵盖各种领域和任务的数据集集合。
它不仅仅是一个云存储:数据集中心是一个通过 git 提供数据版本控制以及数据集查看器来探索数据的平台,使其成为存储 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")