You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决在Google Colab中无法上传7GB大小的Yelp Kaggle数据集文件问题

我太懂你这种大文件上传卡到天荒地老的崩溃感了!7GB的Yelp评论文件直接往Colab上传确实容易掉链子——不管是本地传还是Drive传,都容易因为文件太大、网络波动或者Colab的会话限制失败。试试下面这几个亲测有效的办法,绝对能解决你的问题:

方案1:直接用Kaggle API在Colab里下载(最推荐)

这个方法跳过了本地上传的步骤,直接让Colab从Kaggle服务器拉取数据集,速度快还稳定,是处理大数据集的首选:

  1. 先去你的Kaggle账号生成API密钥:
    • 登录Kaggle,点击右上角头像 → 选择「Settings」
    • 拉到「API」部分,点击「Create New API Token」,浏览器会自动下载一个kaggle.json文件(很小,只有几十KB)
  2. 在Colab里上传这个kaggle.json
    from google.colab import files
    files.upload() # 上传刚才下载的kaggle.json
    
  3. 配置Kaggle环境并下载数据集:
    # 把kaggle.json放到正确的目录
    !mkdir -p ~/.kaggle
    !cp kaggle.json ~/.kaggle/
    !chmod 600 ~/.kaggle/kaggle.json # 设置权限,防止报错
    
    # 直接下载Yelp数据集(不用手动解压整个压缩包)
    !kaggle datasets download -d yelp-dataset/yelp-dataset
    
    # 只解压你需要的review文件,节省时间和空间
    !unzip -q yelp-dataset.zip yelp_academic_dataset_review.json
    
  4. 之后你就可以直接读取这个文件了,记得加lines=True(因为Yelp的JSON是每行一个数据对象的格式):
    import pandas as pd
    df = pd.read_json('yelp_academic_dataset_review.json', lines=True)
    
方案2:挂载Google Drive直接读取(适合已传文件到Drive的情况)

如果你已经把文件传到了Google Drive,别用files.upload(),直接挂载Drive访问更靠谱:

  1. 在Colab里挂载你的Google Drive:
    from google.colab import drive
    drive.mount('/content/drive')
    
    跟着提示完成授权就行。
  2. 直接读取Drive里的文件,把路径换成你自己的:
    import pandas as pd
    # 替换成你Drive里文件的实际路径
    df = pd.read_json('/content/drive/MyDrive/桌面/你的数据集文件夹/yelp_academic_dataset_review.json', lines=True)
    
    要是Drive上传大文件慢,建议用Google Drive桌面客户端同步,比网页上传稳定多了。
方案3:分块上传后合并(适合必须从本地传的情况)

如果一定要从本地传7GB的文件,先把它切成小块,上传后再合并:

  1. 本地分块:
    • Windows:用PowerShell命令(比如分成1GB的块):
      Get-Content yelp_academic_dataset_review.json -ReadCount 100000 | ForEach-Object { $i++; $_ | Out-File "review_part_$i.json" }
      
    • macOS/Linux:用终端的split命令:
      split -b 1G yelp_academic_dataset_review.json review_part_
      
  2. 把所有分块文件上传到Colab(每个块1GB左右,上传速度会快很多)
  3. 在Colab里合并分块:
    !cat review_part_* > yelp_academic_dataset_review.json
    
    合并完就可以正常读取了。
额外小贴士
  • Colab的免费会话一般会在12小时左右断开,要是处理大文件,建议用Colab Pro(有更长的会话时间),或者在浏览器控制台运行这段代码防止休眠:
    function ClickConnect(){console.log("保持连接");document.querySelector("colab-connect-button").click()}
    setInterval(ClickConnect, 60000) // 每分钟点击一次连接按钮
    
  • 读取大JSON文件时,要是内存不够,可以用chunksize参数分块读取:
    chunk_iter = pd.read_json('yelp_academic_dataset_review.json', lines=True, chunksize=100000)
    for chunk in chunk_iter:
        # 处理每个chunk的数据
        pass
    

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

火山引擎 最新活动