Привязки между приложением Spark (написанным на Java) к exe C ++

Мы пытаемся вызвать C ++ exe из приложения Spark (написано на Java).
Я пытался с помощью .pipe () передать аргументы как «String» в C ++, он работает нормально.
Но мы работаем с более сложными элементами в RDD: martrix + метаданные. (каждый элемент СДР представляет собой матрицу (из int) + метеданные (String, int, double, …).
Каков наилучший способ передачи этих элементов в программу C ++ (для выполнения научных вычислений)? Я читал некоторые темы о Thrift, Avro, несколько о JNI. Кто-то уже использовал эти инструменты для такого рода задач?

Я уже пытался сохранить свои данные в файлах Avro с помощью пакета «spark-avro» из Databricks GitHub. Но он использует SparkSQL. (Я работаю с родными RDD: JavaRDD и JavaPairRDD).

Я могу добавить некоторые вещи, такие как интерфейс в моей программе C ++, чтобы поймать поток (или что-то в этом роде) и десериализовать его.

Подводя итог, что является лучшим инструментом / методом для сериализации сложных объектов RDD, отправки их из spark в программу на C ++ и отправки результата в spark?

Спасибо за помощь !

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …