cloudpickle pickle 扩展包

发布时间 2023-09-19 17:14:24作者: 荣锋亮

pickle 是python的序列化包,但是默认pickle 不能进行lambda 的处理,cloudpickle 对于pickle 进行了一些扩展,可以更好的支持
集群节点之间的共享以及计算,同时apache spark 的pyspark 也集成了此功能,只是是自己fork的完整代码

参考使用

  • dump.py
 
import cloudpickle,pickle
 
squaredv2 = lambda x: x ** 2
 
pickled_class_origin = cloudpickle.dumps(squaredv2)
 
new_squared = pickle.loads(pickled_class_origin)
 
print(new_squared(2))
  • 效果

如果是默认的pickle dump 会提供错误的

说明

实际上不少python 项目都会集成cloudpickle 比如ray 也集成了

参考资料

https://github.com/cloudpipe/cloudpickle
https://docs.python.org/3/library/pickle.html
https://github.com/ray-project/ray/tree/master/python/ray/cloudpickle