小编use*_*293的帖子

从谷歌云存储流式传输gzip压缩文件

我想直接从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
Run Code Online (Sandbox Code Playgroud)

我玩了几个GCS API(基于JSON,cloud.storage),但它们似乎都没有给我一些我可以通过gzip流式传输的东西.更重要的是,即使文件未压缩,我也无法打开文件并将其提供给cv.reader(Iterator类型).

我的压缩CSV文件大约为500MB,而未压缩的文件最多使用几GB.我不认为这是一个好主意:1 - 在打开文件之前本地下载文件(除非我可以重叠下载和计算)或2 - 在计算之前将其完全打开在内存中.

最后,我当前在我的本地机器上运行此代码,但最终,我将转移到AppEngine,所以它也必须在那里工作.

谢谢!!

python csv google-app-engine google-cloud-storage

3
推荐指数
1
解决办法
2675
查看次数