首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Arrow在Python中从Java获取向量

Apache Arrow在Python中从Java获取向量
EN

Stack Overflow用户
提问于 2020-12-30 15:30:27
回答 1查看 597关注 0票数 0

我在java (arrow-vectorarrow-memory-unsafe)和python (pyarrow) 中使用Apache库在不同的进程()中。

我试图在内存中实现零拷贝DataFrame,但是在java库中找不到从python获得箭头向量的内存地址的API。我在pyarrow库中发现了该API,但在java库中却没有。

我需要的是:

用java创建向量,使用箭头作为内存映射API

  • get VectorSchemaRoot 的内存地址或描述符或java

  • pass中的字段向量收集内存中的数据,将其映射到python库pyarrow

  • read apache箭头矢量数据

我在2点有问题

你知道我该怎么做吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-12-30 16:08:14

这里有pyarrow.jvm模块。以下代码应足以将VectorSchemaRoot转换为RecordBatch

代码语言:javascript
复制
import pyarrow.jvm

vs_root = <VectorSchemaRoot>
rb = pyarrow.jvm.record_batch(vs_root)

如果您对JDBC对象有一个Python引用,例如通过使用VectorSchemaRoot (关于JDBC的充分使用,请参见https://uwekorn.com/2020/12/30/fast-jdbc-revisited.html ),这就是它的工作方式。

如果使用不同的方法,则需要迭代VectorSchemaRoot的数组,然后迭代它们的缓冲区的数组,以获得所有缓冲区的单独内存地址。然后,这些可以用于在pyarrow端构造缓冲区对象,并返回pyarrow.Array实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65509407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档