【问题标题】:pyarrow saving python objectspyarrow保存python对象
【发布时间】:2021-02-11 10:50:00
【问题描述】:
一段时间以来,我一直试图围绕 pyarrow 进行研究,阅读他们的文档,但我仍然觉得我无法完整地掌握它。我看到了他们不推荐使用的任意 python 对象的序列化方法,但由于它已被弃用,我想知道保存对象列表或一般任意 python 对象的正确方法是什么?
你什么时候也想麻烦使用 pyarrow?
【问题讨论】:
-
对于保存任意 python 对象,如果使用特定于 python 的格式适合您的应用程序,则可以使用 pickle。 Arrow 专门针对柱状数据(数据框/表格)。
标签:
python
python-3.x
serialization
pyarrow
【解决方案1】:
PyArrow 是 (Apache) Arrow 的 Python 绑定。 Arrow 是一种跨语言规范,描述了如何在内存中存储列式数据。它充当数据处理应用程序和库的内部构件,使它们能够有效地处理大型表格数据集。
你什么时候还要麻烦使用 pyarrow?
PyArrow 的一个简单用例是在 Pandas/Numpy/dict 和 Parquet 文件格式之间进行转换。因此,例如,如果您需要在用不同语言编写的程序甚至使用不同版本的 python 的程序之间共享列数据(例如 DataFrames),一个很好的方法是将您的 Pandas/Numpy/dict 保存到Parquet 文件(序列化)。这是一种更便携的格式,例如pickle。它还允许您以可移植的方式嵌入自定义元数据。