GAE MapReduce,如何编写多个输出

时间:2013-01-31 21:43:00

标签: python google-app-engine mapreduce

我有一个数据集,我可以进行多次映射。

假设我有一个用于reduce函数的3个键值对,如何修改输出,使得我有3个blobfiles - 每个键值对一个?

如果我能进一步澄清,请告诉我。

1 个答案:

答案 0 :(得分:2)

我不认为GAE Mapreduce库中存在这样的功能(但是?)。

根据数据集的大小和所需的输出类型,您可以通过选择减速器作为另一个输出编写器来进行小型投资。例如,如果其中一个reducer输出应直接返回数据存储区,另一个输出应该转到文件,您可以自己打开一个文件并将输出写入它。或者,您可以使用operation.db.Put将中间映射结果序列化并显式存储到临时数据存储,并在该数据存储上执行单独的Map或Reduce作业。当然,这最终会比第一个解决方案更昂贵。

在您的特定键值示例中,我建议您写入Google云端存储文件,然后根据需要对其进行后处理,将其拆分为三个文件。这也可以让你更好地控制最终文件名。