如何将Kaggle超大数据集中指定单个文件加载到Google Colab
如果要从Kaggle Notebook切换到Colab Notebook,可以先从Kaggle导出笔记本文件,再上传到Google Colab打开。但该操作的最大痛点是配套的Kaggle数据集通常需要单独下载再上传到Colab,工作量很大。
如果使用的是小型数据集,或者仅需要数据集中的个别小文件,可以手动复现Kaggle Notebook默认的目录结构即可:只需要在Colab中创建kaggle/input/等对应目录,再把文件上传到对应路径就能正常运行代码,不存在适配问题。
如果是大型数据集,可以选择以下两种解决方案:
- 挂载你的Google Drive,直接使用存储在Drive中的数据集/文件

- 配置Kaggle API直接将数据集下载到Colab中,详细操作步骤如下:
请按照以下步骤在Google Colab中配置Kaggle API并下载数据:
- 进入你的Kaggle账户页面,滚动到API板块,点击「Expire API Token」删除之前的旧令牌
- 点击「Create New API Token」,此时
kaggle.json配置文件会自动下载到你的本地设备- 打开你的Google Colab项目文件,按顺序执行以下命令:
- 安装Kaggle依赖
! pip install -q kaggle
- 上传刚才下载的
kaggle.json文件from google.colab import files files.upload()
- 创建Kaggle配置目录并移动文件
! mkdir ~/.kaggle ! cp kaggle.json ~/.kaggle/
- 修改配置文件权限避免权限报错
! chmod 600 ~/.kaggle/kaggle.json
- 验证配置是否正常生效
! kaggle datasets list配置完成后,下载竞赛数据集的命令格式如下:
! kaggle competitions download -c 'name-of-competition'
如果需要下载普通公开数据集,命令格式如下:
! kaggle datasets download -d USERNAME/DATASET_NAME如果不清楚数据集的标识,可以在Kaggle数据集页面的「New Notebook」按钮旁的三点下拉菜单中选择「copy API command」直接获取完整下载命令。
该API方案存在明显限制:仅适用于小型数据集。实测尝试下载40GB的CORD-19研究数据集时,执行命令:
kaggle datasets download -d allen-institute-for-ai/CORD-19-research-challenge
接口返回404 - Not Found,推测是数据集大小超出了API的下载限制。这种情况下只能单独下载需要的文件后通过挂载的Google Drive读取,或者直接在Kaggle平台运行代码。
场景问题说明
如果仅需要下载40GB的CORD-19数据集中大小为800MB的metadata.csv文件到Colab,目前没有可用的直接下载方法。如果已经将该文件上传到Google Drive挂载使用,是当前可行的方案;但对比Kaggle平台全量数据集预加载、无需额外下载即可快速读取的体验,手动上传的操作工作量确实更大。
补充:从Kaggle下载的压缩包需要解压后才能使用,操作步骤如下
使用unzip命令即可完成解压,示例如下:
首先创建目标存储目录,例如命名为train:! mkdir train将压缩包解压到该目录下:
! unzip train.zip -d train
更新:方案对比与推荐
实测对比挂载Google Drive和Kaggle API直接下载两种方案后,在技术架构支持的前提下更推荐使用挂载Google Drive的方案。
该方案的核心优势是文件仅需上传一次,后续Google Colab可以直接读取Drive中的内容:虽然需要提前从Kaggle下载所需文件、解压后上传到Google Drive,且每次Python会话都需要验证令牌完成挂载,但验证操作耗时极短。而Kaggle API直接下载的方案需要每次新建会话都重新下载数据集,会消耗更多的时间和流量。
内容的提问来源于stack exchange,提问作者questionto42


