【发布时间】:2015-02-08 21:10:20
【问题描述】:
我想直接从 Google Cloud Storage 读取压缩文件并使用 Python csv 包打开它们。 本地文件的代码是:
def reader(self):
print "reading local compressed file: ", self._filename
self._localfile = gzip.open(self._filename, 'rb')
csvReader = csv.reader(self._localfile, delimiter=',', quotechar='"')
return csvReader
我使用过几个 GCS API(基于 JSON,cloud.storage),但它们似乎都没有给我可以通过 gzip 流式传输的东西。更重要的是,即使文件被解压缩,我也无法打开文件并将其交给 cv.reader(Iterator 类型)。
我压缩的 CSV 文件大约 500MB,而未压缩时它们最多使用几 GB。我不认为这是一个好主意:1 - 在打开文件之前在本地下载文件(除非我可以重叠下载和计算)或 2 - 在计算之前完全在内存中打开它。
最后,我目前在本地机器上运行此代码,但最终我将转移到 AppEngine,所以它也必须在那里工作。
谢谢!!
【问题讨论】:
-
把你的文件分成多个部分怎么样?
-
这已经是 1+TB 数据集的多个部分。 :D 进一步打破它似乎是一个不必要的想法。我正在尝试 Alex Martelli 的建议。
标签: python google-app-engine csv google-cloud-storage