我的每个映射器都需要访问非常大的字典。有没有办法可以避免每个映射器打开自己的副本的开销,而是让它们都指向一个全局共享对象?
任何特定于 DISCO 或 mapreduce 范例的建议都会有所帮助。
可以在 Linux 和 Windows 上快速安装,也提供编译版本。
然后, python redis 包将允许您非常轻松地写入、读取和更新值。
使用散列数据类型是最适合您的,您可以向所谓的字段(Python 字典术语中的键)添加/编辑新值,它非常快而且也非常简单。
该解决方案甚至适用于独立进程。您甚至可以通过网络在 Redis 中共享数据,因此对于 map/reduce 场景,这可能是一个不错的选择。
唯一需要注意的是,在存储和恢复值时,值只能是字符串,因此必须对它们进行序列化和反序列化。json.dumps 和 json.loads 对此非常有效。