py4j を使用して、Scala から Python にバイト配列 (Array[Byte]) を送信しています。Python側では、これらのバイトの単なるビューであるがnp.complex128として解釈されるnumpy配列(できれば不変)を作成したいと考えています。バイト順を無視すると、バイトは次のように並べられますreal1, imag1, real2, imag2, ...。
Python 3.5 および py4j 0.10.3 のpy4j ドキュメントによると、Python 側でバイト オブジェクトを取得する必要があるようですが、実際には JavaArray を取得しています。 jvm側がこれをかなり遅くしていると思います。これは、バイトからバイト (クラス) への Scala の「オートボクシング」によるものだと推測していますが、よくわかりません。
Py4j の質問: py4j にバイトのコピーを強制的に返すことは可能ですか?
Scala の質問: おそらく私の推測は間違っていて、この場合、実際にはプリミティブなバイト配列にコンパイルされますか? そうでない場合は、代わりにJavaでその部分を書く以外に、とにかくそれが確実に行われるようにすることは可能ですか?