sql >> Databáze >  >> NoSQL >> MongoDB

Jak se dotazovat při připojení mongodb s apache-spark

Nemyslím si, že existuje „správný“ dotaz – musíte se dotazovat na základě dat, která byste chtěli zpracovat

Setkal jsem se se stejným problémem.

Domnívám se, že newAPIHadoopRDD, vzhledem k třídě MongoInputSplit.class, nezohledňuje dotaz při výpočtu rozdělení. Použije se až po výpočtu rozdělení. To znamená, že bez ohledu na to, jak štíhlý může být váš dotaz, počet rozdělení zůstane stejný a bude úměrný velikosti kolekce.

newAPIHadoopRDD používá StandaloneMongoSplitter. Všimněte si, že tato třída nepoužívá dotaz k výpočtu hranic rozdělení. Pouze používá mongoův interní příkaz "splitVector"; z dokumentace zde - http://api.mongodb.org/internal/current/ commands.html , také to vypadá, že nepočítá s dotazem.

Nemám ale dobré řešení. Lepší přístup by rozdělil kolekci mongo až po výpočet dotazu, ale to vyžaduje jinou implementaci rozdělovače. Zde je dobré čtení o problému:http:// www.ikanow.com/how-well-does-mongodb-integrate-with-hadoop/




  1. Průvodce MongoDB BSON

  2. Browser Reload:Nevrátí se zpět na vybranou stránku, přejde na výchozí domovskou stránku - ReactJs

  3. Jak převést mongodb ISODate na řetězec v mongoDB?

  4. Chyba při načítání sdílených knihoven, nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář (hiredis)