首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过py4j来自jvm的Python字节数组

通过py4j来自jvm的Python字节数组
EN

Stack Overflow用户
提问于 2016-10-06 09:49:36
回答 1查看 595关注 0票数 0

我使用py4j将字节数组(ArrayByte)从Scala发送到python。在python方面,我希望创建一个numpy数组(最好是不可变的),它只是这些字节的视图,但被解释为np.complex128。不考虑字节顺序,字节按如下顺序排列:real1, imag1, real2, imag2, ...

根据python3.5和py4j文档 0.10.3的py4j,似乎我应该在python端获得一个字节对象,但实际上我得到了一个JavaArray,据我所知,它对jvm端的数组有一个引用,我认为这很慢。我猜想这是由于Scala将字节“自动装箱”给byte (类),但我不确定。

Py4j问题:是否可以强制py4j返回字节的副本?

Scala问题:也许我的猜测是错误的,在这种情况下,它实际上编译成了原始字节数组?如果没有,除了用Java编写该部分之外,是否可以确保它在任何情况下都这样做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-06 13:06:19

强制Py4J在Python中获得字节数组的唯一方法是确保byte[]发送一个byte[]。

我目前正在开发一种新的二进制协议(0.11),它将使这些类型的传输速度更快,并使为这些场景编写适配器变得更容易。本机不打算支持装箱的基元数组,但您可能需要查看尖塔,这是一组与Scala和Py4J一起工作的实用程序。

另一种可能是: Spark使用Py4J与Scala交互,但使用辅助套接字来传输大字节数组,因为这目前不是Py4J的快速操作。

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

https://stackoverflow.com/questions/39892778

复制
相关文章

相似问题

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