MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да правите заявки при свързване на mongodb с apache-spark

Не мисля, че има "правилна" заявка - трябва да направите заявка въз основа на данните, които искате да обработите

Срещнах същия проблем.

Вярвам, че newAPIHadoopRDD, предвид MongoInputSplit.class, не отчита заявката при изчисляване на разделянията. Прилага се само след като се изчислят разделянията. Това означава, че колкото и щадна да е вашата заявка, броят на разделянията ще остане същият и ще бъде пропорционален на размера на колекцията.

newAPIHadoopRDD използва StandaloneMongoSplitter. Обърнете внимание, че този клас не използва заявката за изчисляване на границите на разделяне. Той просто използва вътрешната команда "splitVector" на mongo; от документацията тук - http://api.mongodb.org/internal/current/ commands.html , също изглежда, че не отчита заявката.

Все пак нямам добро решение. По-добър подход би разделил колекцията mongo само след изчисляване на заявката, но това изисква друга реализация на сплитера. Ето малко добро четиво за проблема: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. Как да търсите в масив от обекти в mongodb

  2. Как да създадете MongoDB MultiKey индекс на атрибут на елементи в масив .NET драйвер

  3. Как да създадете индекси, нечувствителни към главни букви в MongoDB

  4. Случаен запис от MongoDB

  5. Как да актуализирам вграден документ във вложен масив?