【发布时间】:2021-03-11 17:08:53
【问题描述】:
考虑一个 numpy 数组列表:
arr = [np.linspace(a1,a2,11) for a1,a2 in [(1,10),(20,30)]]
nparr = np.array(arr)
我想将其序列化以传输到 Javascript REST 客户端。首选方法是
- 高效地序列化为二进制安全格式并将其烘焙到 JSON 对象中的 Base64 编码字段中
- 通过 http 传输 JSON 对象
- 将 JSON 对象接收到 javascript 侦听器中。
- Base64 解码字段并使用高效的 javascript 反序列化库反序列化为二进制数组
我对支持两种语言的 apache arrow 进行了初步调查。
注意:我尝试了以下方法:
- 转换为二维numpy数组
- 转换为pyarrow
下面发生了
pyarr = pya.array(nparr)
ArrowInvalid Traceback (most recent call last)
<ipython-input-11-68eb3e5f578f> in <module>
----> 1 pyarr = pya.array(nparr)
ArrowInvalid: only handle 1-dimensional arrays
所以 pyarrow 在它可以序列化的数据结构方面似乎非常有限。我也在研究 apache parquet 格式:但这似乎需要实际写入磁盘/文件系统?
欢迎使用这两种技术的工作代码或可能的不同库/方法。
【问题讨论】:
标签: javascript python serialization pyarrow