我正在使用 py4j 将字节数组 (Array[Byte]) 从 Scala 发送到 python。在 python 方面,我希望创建一个 numpy 数组(最好是不可变的),它只是这些字节的视图,但被解释为 np.complex128。不考虑字节顺序,字节顺序如下:real1, imag1, real2, imag2, ...
.
根据python 3.5 和 py4j 0.10.3 的py4j 文档,似乎我应该在 python 端获得一个字节对象,但我实际上得到了一个 JavaArray,据我所知,它有一个对数组的引用jvm 方面,我认为这使得这很慢。我猜这是由于Scala的字节到字节(类)的“自动装箱”,但我不确定。
Py4j 问题:是否可以强制 py4j 返回字节的副本?
Scala 问题:也许我的猜测是错误的,在这种情况下它实际上编译为原始字节数组?如果没有,除了用Java编写那部分之外,是否有可能确保它无论如何都可以做到。