我想直接从谷歌云存储中读取压缩文件,并用Python csv包打开它们。 本地文件的代码如下:谷歌云存储的流式gzip文件
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,所以它也必须在那里工作。
谢谢!
怎么样在多个部分分割您的档案? – Raito 2015-02-08 21:20:12
这已经是1 + TB数据集的多个部分。 :D打破它似乎是一个不必要的想法。我正在尝试Alex Martelli的建议。 – user1066293 2015-02-11 07:33:55