MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak wysyłać zapytania podczas łączenia mongodb z apache-spark

Nie sądzę, że istnieje "właściwe" zapytanie - musisz wykonać zapytanie na podstawie danych, które chcesz przetworzyć

Napotkałem ten sam problem.

Uważam, że newAPIHadoopRDD, biorąc pod uwagę klasę MongoInputSplit., nie uwzględnia zapytania przy obliczaniu podziałów. Jest stosowany dopiero po obliczeniu podziałów. Oznacza to, że niezależnie od tego, jak szczupłe może być Twoje zapytanie, liczba podziałów pozostanie taka sama i będzie proporcjonalna do wielkości kolekcji.

nowośćAPIHadoopRDD używa StandaloneMongoSplitter. Zauważ, że ta klasa nie używa zapytania do obliczenia granic podziału. Po prostu używa wewnętrznego polecenia "splitVector" mongo; z dokumentacji tutaj - http://api.mongodb.org/internal/current/ commands.html , wygląda na to, że nie uwzględnia zapytania.

Nie mam jednak dobrego rozwiązania. Lepszym podejściem byłoby podzielenie kolekcji mongo dopiero po obliczenie zapytania, ale wymaga to innej implementacji rozdzielacza. Oto kilka dobrych lektur na ten temat:http:// www.ikanow.com/how-well-does-mongodb-integrate-with-hadoop/




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kiedy kursor mongodb wygaśnie

  2. Pobierz konkretny element z tablicy mongoDB

  3. Błąd ECONNREFUSED podczas łączenia się z mongodb z node.js

  4. MongoError:pula instancji serwera została zniszczona

  5. Jak zwrócić agregację podtablic z filtrem na najwyższej tablicy?