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

Jupyter Notebook加载GCS中CSV文件崩溃,不同GCE实例表现异常

GCE实例加载GCS CSV文件崩溃的排查方案

我最近遇到个挺头疼的问题:同样的代码在一台GCE实例的Jupyter Notebook里能正常读取GCS存储桶里的自定义CSV文件,换了另一台配置更高(内存、CPU都比旧实例强)的GCE实例却直接崩溃,而且Python 2和Python 3环境里都出现这个情况。已经反复确认过存储桶名称和文件名完全没问题——毕竟在旧实例上跑的好好的。

用到的代码如下:

from google.datalab import Context
import google.datalab.bigquery as bq
import google.datalab.storage as storage
import pandas as pd
try:
    from StringIO import StringIO
except ImportError:
    from io import BytesIO as StringIO

第一次用魔法命令读取时崩溃:

%%gcs read --object gs://ls_w/tmax_out_save.csv --variable bla # 执行到此处崩溃

后来换了storage模块的API尝试,结果还是崩溃:

bla = storage.Object('ls_w', 'tmax_out_save.csv').read_stream() # 这里同样崩溃

几个可以尝试的排查和解决方向

  • 核对实例权限配置:新实例配置更高,但说不定没拿到GCS存储桶的访问权限。去IAM控制台看看新实例绑定的服务账号,有没有storage.objectViewer或者针对目标存储桶的读取权限,对比旧实例的权限配置来调整。
  • 检查google-datalab版本差异:新实例安装的datalab版本可能和旧实例不一样,某些版本可能存在GCS读取的兼容性bug。在两个实例里分别执行pip show google-datalab查看版本,把新实例的版本降级到和旧实例一致再试试。
  • 测试小文件读取排除文件问题:如果目标CSV文件很大,试试上传一个小的测试CSV到同一个存储桶,用同样的代码读取。如果小文件能正常加载,那可能是大文件读取时的内存处理逻辑出了问题。
  • 查看崩溃时的日志信息:Jupyter崩溃后,去GCE实例的系统日志或者Jupyter的后台日志里找找具体错误提示——比如权限报错、内存溢出信息,这些能直接帮你定位问题根源。
  • 换一种读取方式绕开datalab工具:可以先用gsutil命令把文件下载到实例本地,再用pandas读取,看看能不能正常运行:
!gsutil cp gs://ls_w/tmax_out_save.csv ./local_copy.csv
df = pd.read_csv('./local_copy.csv')

如果这种方式能成功,那大概率是datalab的GCS读取模块在新实例上存在兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:49:13