mcpField
H
hugging-face-dataset-viewer

hugging-face-dataset-viewer

github.com/huggingface数据与数据库11.2k104 次安装5 天前更新
代码仓库

关于 hugging-face-dataset-viewer

hugging-face-dataset-viewer 是一项通过 Hugging Face Dataset Viewer API 只读探索和提取数据的技能。它帮助开发者与数据从业者检查数据集配置、行、元数据和 Parquet 文件,并用 SQL 查询 Parquet 数据。

主要功能

  1. 01验证数据集并列出拆分
  2. 02预览并分页读取数据行
  3. 03搜索和筛选数据行
  4. 04获取 Parquet 链接及元数据
  5. 05用 SQL 查询 Parquet 数据

适用场景

  1. 01使用前检查数据集
  2. 02查找匹配文本或筛选行
  3. 03查看数据集大小和列统计
  4. 04对 Parquet 分片执行 SQL 查询

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/huggingface/skills --skill hugging-face-dataset-viewer

安装后在 Claude Code 中输入/hugging-face-dataset-viewer确认已加载。

详细介绍

Hugging Face 数据集查看器

使用此技能执行只读的 Dataset Viewer API 调用,以探索和提取数据集。

核心工作流

  1. 可选择通过 /is-valid 验证数据集是否可用。
  2. 通过 /splits 确定 config 和 split。
  3. 使用 /first-rows 预览。
  4. 使用 offset 和 length 通过 /rows 分页获取内容(最多 100 行)。
  5. 使用 /search 匹配文本,使用 /filter 筛选行。
  6. 通过 /parquet 获取 parquet 链接,通过 /size 和 /statistics 获取总量和元数据。

默认设置

  • 基础 URL:https://datasets-server.huggingface.co
  • 默认 API 方法:GET
  • 查询参数应进行 URL 编码。
  • offset 从 0 开始计数。
  • 对于行数据类端点,length 的上限通常为 100。
  • 受限或私有数据集需要 Authorization: Bearer <HF_TOKEN>。

Dataset Viewer

  • 验证数据集:/is-valid?dataset=<namespace/repo>
  • 列出子集和拆分:/splits?dataset=<namespace/repo>
  • 预览前几行:/first-rows?dataset=<namespace/repo>&config=<config>&split=<split>
  • 分页获取行:/rows?dataset=<namespace/repo>&config=<config>&split=<split>&offset=<int>&length=<int>
  • 搜索文本:/search?dataset=<namespace/repo>&config=<config>&split=<split>&query=<text>&offset=<int>&length=<int>
  • 使用谓词筛选:/filter?dataset=<namespace/repo>&config=<config>&split=<split>&where=<predicate>&orderby=<sort>&offset=<int>&length=<int>
  • 列出 parquet 分片:/parquet?dataset=<namespace/repo>
  • 获取大小总量:/size?dataset=<namespace/repo>
  • 获取列统计信息:/statistics?dataset=<namespace/repo>&config=<config>&split=<split>
  • 获取 Croissant 元数据(如果有):/croissant?dataset=<namespace/repo>

分页模式:

curl "https://datasets-server.huggingface.co/rows?dataset=stanfordnlp/imdb&config=plain_text&split=train&offset=0&length=100"
curl "https://datasets-server.huggingface.co/rows?dataset=stanfordnlp/imdb&config=plain_text&split=train&offset=100&length=100"

分页未完成时,使用 num_rows_total、num_rows_per_page 和 partial 等响应字段来决定如何继续。

搜索/筛选说明:

  • /search 会匹配字符串列(其全文搜索行为由 API 内部实现)。
  • /filter 要求在 where 中使用谓词语法,并可在 orderby 中指定排序。
  • 筛选和搜索应保持只读,不产生副作用。

查询数据集

使用 npx parquetlens 和 Hub parquet 别名路径执行 SQL 查询。

Parquet 别名格式:

hf://datasets/<namespace>/<repo>@~parquet/<config>/<split>/<shard>.parquet

从 Dataset Viewer /parquet 获取 <config>、<split> 和 <shard>:

curl -s "https://datasets-server.huggingface.co/parquet?dataset=cfahlgren1/hub-stats" \
  | jq -r '.parquet_files[] | "hf://datasets/\(.dataset)@~parquet/\(.config)/\(.split)/\(.filename)"'

运行 SQL 查询:

npx -y -p parquetlens -p @parquetlens/sql parquetlens \
  "hf://datasets/<namespace>/<repo>@~parquet/<config>/<split>/<shard>.parquet" \
  --sql "SELECT * FROM data LIMIT 20"
SQL 导出
  • CSV:--sql "COPY (SELECT * FROM data LIMIT 1000) TO 'export.csv' (FORMAT CSV, HEADER, DELIMITER ',')"
  • JSON:--sql "COPY (SELECT * FROM data LIMIT 1000) TO 'export.json' (FORMAT JSON)"
  • Parquet:--sql "COPY (SELECT * FROM data LIMIT 1000) TO 'export.parquet' (FORMAT PARQUET)"

创建和上传数据集

根据依赖限制,选择以下一种流程。

零本地依赖(Hub UI):

  • 在浏览器中创建数据集仓库:https://huggingface.co/new-dataset
  • 在仓库的“Files and versions”页面上传 parquet 文件。
  • 验证分片是否出现在 Dataset Viewer 中:
curl -s "https://datasets-server.huggingface.co/parquet?dataset=<namespace>/<repo>"

低依赖 CLI 流程(npx @huggingface/hub / hfjs):

  • 设置身份验证令牌:
export HF_TOKEN=<your_hf_token>
  • 将 parquet 文件夹上传到数据集仓库(如果仓库不存在则自动创建):
npx -y @huggingface/hub upload datasets/<namespace>/<repo> ./local/parquet-folder data
  • 创建仓库时将其设为私有:
npx -y @huggingface/hub upload datasets/<namespace>/<repo> ./local/parquet-folder data --private

上传后,调用 /parquet 获取 <config>/<split>/<shard> 值,以便使用 @~parquet 进行查询。

评论

支持 Markdown