Não acho que haja uma consulta "certa" - você precisa consultar com base nos dados que deseja processar
Eu encontrei o mesmo problema.
Acredito que newAPIHadoopRDD, dado o MongoInputSplit.class, não leva em conta a consulta ao calcular as divisões. Ele só é aplicado após o cálculo das parcelas. Isso significa que não importa quão enxuta sua consulta possa ser, o número de divisões permanecerá o mesmo e será proporcional ao tamanho da coleção.
newAPIHadoopRDD está usando o StandaloneMongoSplitter. Observe que essa classe não está usando a consulta para calcular os limites de divisão. Ele está apenas usando o comando interno "splitVector" do mongo; da documentação aqui - http://api.mongodb.org/internal/current/ comandos.html , também parece que não leva em conta a consulta.
Eu não tenho uma boa solução embora. Uma abordagem melhor dividiria a coleção de mongo apenas depois calcular a consulta, mas isso requer outra implementação do divisor. Aqui está uma boa leitura sobre o problema:http:// www.ikanow.com/how-well-does-mongodb-integrate-with-hadoop/