我有一个数据集,我可以进行多次映射。
假设我有一个用于reduce函数的3个键值对,如何修改输出,使得我有3个blobfiles - 每个键值对一个?
如果我能进一步澄清,请告诉我。
答案 0 :(得分:2)
我不认为GAE Mapreduce库中存在这样的功能(但是?)。
根据数据集的大小和所需的输出类型,您可以通过选择减速器作为另一个输出编写器来进行小型投资。例如,如果其中一个reducer输出应直接返回数据存储区,另一个输出应该转到文件,您可以自己打开一个文件并将输出写入它。或者,您可以使用operation.db.Put
将中间映射结果序列化并显式存储到临时数据存储,并在该数据存储上执行单独的Map或Reduce作业。当然,这最终会比第一个解决方案更昂贵。
在您的特定键值示例中,我建议您写入Google云端存储文件,然后根据需要对其进行后处理,将其拆分为三个文件。这也可以让你更好地控制最终文件名。