如何mapreduce谷歌云存储文件?

时间:2012-07-29 14:38:48

标签: google-app-engine google-cloud-storage

来自app-engine mapreduce控制台的

(myappid.appspot.com/mapreduce/status) 我有一个用input_reader定义的mapreduce:mapreduce.input_readers.BlobstoreLineInputReader 我已成功使用常规blobstore文件,但它不适用于使用create_gs_key从云存储创建的Blobkey。当我运行它时,我收到错误“BadReaderParamsError:找不到密钥THEKEY的blobinfo”。输入阅读器检查是否存在BlobInfo。这有什么工作吗?不应该BlobInfo.get(BLOBKEY FROM CS)返回一个blobinfo?

从谷歌云存储文件中获取blob_key,我运行:

from google.appengine.ext import blobstore
READ_PATH = '/gs/mybucket/myfile.json'
blob_key =  blobstore.create_gs_key(READ_PATH)
print blob_key

2 个答案:

答案 0 :(得分:5)

社区成员在appengine-mapreduce库中创建了一个针对云存储的LineInputReader:http://code.google.com/p/appengine-mapreduce/issues/detail?id=140

我们在此处发布了修改内容:https://github.com/thinkjson/CloudStorageLineInputReader

我们使用它来对大约4TB的数据进行MapReduce,并且到目前为止对此感到满意。

答案 1 :(得分:0)

Cloud Storage和BlobStore是两个不同的存储,您无法将云存储中的密钥作为BlobStore密钥传递。
您需要在云存储文件上实现自己的线路阅读器。