1

从应用程序引擎 mapreduce 控制台 (myappid.appspot.com/mapreduce/status) 我有一个使用 input_reader: mapreduce.input_readers.BlobstoreLineInputReader 定义的 mapreduce,我已成功将其与常规 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
4

2 回答 2

5

社区成员为云存储创建了 LineInputReader 作为 appengine-mapreduce 库上的一个问题:http ://code.google.com/p/appengine-mapreduce/issues/detail?id=140

我们在这里发布了我们的修改:https ://github.com/thinkjson/CloudStorageLineInputReader

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

于 2012-09-14T20:13:22.133 回答
0

Cloud Storage 和 BlobStore 是两个不同的存储,您不能将 Cloud Storage 中的密钥作为 BlobStore 密钥传递。
您将需要通过 Cloud Storage 文件实现自己的行阅读器。

于 2012-07-29T14:52:32.873 回答