Я хотел бы представить, что для этого существуют существующие функции API. Предположим, что существует Java-код, который выглядит примерно так:Как выполнить запрос в MongoDB с помощью Apache Spark JavaRDD?
JavaRDD<Integer> queryKeys = ...; //values not particularly important
List<Document> allMatches = db.getCollection("someDB").find(queryKeys); //doesn't work, I'm aware
JavaPairRDD<Integer, Iterator<ObjectContainingKey>> dbQueryResults = ...;
Цель этого: После кучу преобразований данных, я в конечном итоге с РДУ целочисленных ключей, которые я хотел бы сделать один запрос с дб (а не пучок запросов) на основе этой коллекции ключей.
Оттуда я хотел бы повернуть результаты запроса в пару RDD ключа и все его результаты в итераторе (что позволяет легко ударить по земле снова для следующих шагов, которые я намереваюсь брать). И чтобы уточнить, я имею в виду пару ключей и их результаты как итератор.
Я знаю, что в MongoDB есть функциональность, способная координировать работу с Spark, но я не нашел ничего, что с ней будет работать (похоже, оно склоняется к написанию базы данных, а не к ее запросу).
Вы можете сопоставить RDD и запросить MongoDB –
Да, это довольно просто. –