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