1

我的每个映射器都需要访问非常大的字典。有没有办法可以避免每个映射器打开自己的副本的开销,而是让它们都指向一个全局共享对象?

任何特定于 DISCO 或 mapreduce 范例的建议都会有所帮助。

4

1 回答 1

0

使用 Redis键值存储

可以在 Linux 和 Windows 上快速安装,也提供编译版本。

然后, python redis 包将允许您非常轻松地写入、读取和更新值。

使用散列数据类型是最适合您的,您可以向所谓的字段(Python 字典术语中的键)添加/编辑新值,它非常快而且也非常简单。

该解决方案甚至适用于独立进程。您甚至可以通过网络在 Redis 中共享数据,因此对于 map/reduce 场景,这可能是一个不错的选择。

唯一需要注意的是,在存储和恢复值时,值只能是字符串,因此必须对它们进行序列化和反序列化。json.dumps 和 json.loads 对此非常有效。

于 2014-04-17T16:11:31.660 回答