TMD <https://github.com/techascent/tech.ml.dataset> supports memory mapped arrow files. We don't currently support float8 but I would be interested in implementing that if you are interested in trying it out. Its Clojure, not java, but is still on the JVM.
This is likely to be your fastest option both in terms of raw performance and time to final solution.
