Apache Arrow is "a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware". It has been widely used in many notable projects, such as Spark, Parquet, Pandas, etc.
We should firstly benchmark whether it could improve the performance a lot for non-vectorized Python UDFs. If we see significant performance improvements, it would be great to use it for the Java/Python communication. Otherwise, record by record serializer will be used.