Мы пытаемся вызвать 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?
Спасибо за помощь !
Задача ещё не решена.
Других решений пока нет …