You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将大JSON文件的部分内容加载为Hugging Face Dataset?

解决大JSON文件加载内存不足问题:仅加载部分内容

针对大JSON文件加载时内存不足的情况,有两种实用方法可以仅加载前1000条数据:

方法一:使用流式加载(推荐)

利用datasets库的流式加载功能,不会一次性将整个文件读入内存,而是按需读取数据,再通过take()方法获取指定数量的样本:

from datasets import load_dataset

# 开启流式加载模式
dataset = load_dataset("json", data_files="data/my_dataset.json", streaming=True)

# 获取前1000条数据
subset = dataset["train"].take(1000)

# 如需转为非流式Dataset对象(方便后续常规操作)
from datasets import Dataset
subset_dataset = Dataset.from_list(list(subset))

方法二:手动读取前N行(仅适用于JSON Lines格式)

如果你的JSON文件是每行一个独立JSON对象(即JSON Lines格式),可以手动读取前1000行后再转为Dataset:

import json
from datasets import Dataset

data = []
with open("data/my_dataset.json", "r") as f:
    for idx, line in enumerate(f):
        if idx >= 1000:
            break
        data.append(json.loads(line))

# 转换为Dataset
dataset = Dataset.from_list(data)

注意:此方法不适用于单个大JSON数组格式的文件(比如整个文件是一个包含所有数据的数组),这类文件建议使用方法一。

内容的提问来源于stack exchange,提问作者Penguin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:42:12