Colab大型数据集处理方案:直接从Kaggle加载还是上传后解压使用
Colab大文件处理相关问题解答
1. 本地硬盘上传数据集到Colab的方法
有两种常用操作方式:
- 图形界面操作:点击Colab左侧边栏的「文件」图标,点击顶部的「上传到会话存储」按钮,选择本地需要上传的文件即可,上传后的文件默认存储在
/content目录下,会话重启后会自动清除,需要永久存储可提前挂载谷歌云盘,上传到云盘对应的挂载目录。 - 代码触发上传:执行以下代码即可唤起本地文件选择窗口:
from google.colab import files uploaded = files.upload()
2. 两种数据加载方式的速度对比
直接从Kaggle等公开站点加载数据集的速度更快。Colab服务器本身有极高的公网带宽,从Kaggle等合作站点下载数据走的是机房高速链路,速度通常能到几十MB/s甚至百MB/s级别;而从本地上传的速度受限于本地网络的上行带宽,普通家庭宽带的上行带宽大多只有几MB/s到十几MB/s,远低于直接从站点下载的速度。只有当你使用的是本地独有的、未公开的预处理后数据集时,才需要选择本地上传的方式。
3. 大型数据集处理避免系统崩溃的最优方案
你遇到的崩溃核心原因是全量加载数据集到内存超出了Colab的内存上限(免费版Colab可用内存通常为12G左右),可通过以下方案优化:
- 按需读取数据:不要全量加载CSV文件,使用
pd.read_csv的参数过滤不需要的内容:添加usecols参数只读取后续需要用到的列,添加skiprows、nrows参数只读取需要的行范围,避免先全量加载再切片的操作。比如你代码中需要100000到5000000行的前5列,可以直接修改读取代码为:
train = pd.read_csv("/content/unzipped/train.csv", usecols=[0,1,2,3,4], skiprows=range(1, 100001), nrows=4900000)
- 采用更高效率的存储格式:将CSV格式转换为Parquet、Feather等列式存储格式,这类格式压缩率更高、读取速度更快、内存占用更低,适合大文件场景。
- 分块处理:如果数据集远大于可用内存,使用
pd.read_csv的chunksize参数将文件拆分为多个小分块,逐块处理数据,避免一次性全量载入内存。 - 按需读取压缩文件:无需将压缩包全量解压到磁盘,可以直接用
zipfile等库读取压缩包内的指定文件,减少磁盘占用和解压环节的资源消耗。 - 升级配置:如果上述优化仍无法满足需求,可以开通Colab Pro/Pro+,获得更高的内存、GPU资源,降低崩溃概率。
内容的提问来源于stack exchange,提问作者Marko Kolaksazov
相关产品推荐
相关产品推荐

